|
sorry, what i wanna is just a modeless dialog not control bar.
I write a large image's browser. There is a modeless dialog which show the overview of whole image. It is on top of all the views. Its size is about 200*200, if I take a docking control bar, it will take the space 1024*200 that waste two much space.
It just like photoshop, the panels of all kind tool on top of image. But I wanna my modeless dialog has a docking capability.
In fact, it is also acceptable to make this dialog just on the left corner of the free space in mainframe. But I need the rect in the mainframe beside the toolbar, for GetClientRect doesn't get rid of the space toolbar occupied.
|
|
|
|
|
The easiest method of getting the available rectangle that you can use to position your modeless window is like this:
CRect rcAvailable;<br />
RepositionBars(0, 0xffff, AFX_IDW_PANE_FIRST, reposQuery, &rcAvailable );<br />
rcAvailable then contains the client rectangle without the toolbars.
Hope this helps.
|
|
|
|
|
I'm writing a program that open a text file, then display only the
first 4 lines and the last 4 lines to screen. <this is="" a="" win32="" console=""
program="">
However, I can't even open a file to display to the screen??? What's
wrong?
Please help.
<br />
<br />
void display_file()<br />
{<br />
<br />
ifstream ins;<br />
ofstream outs;<br />
string inFile;<br />
<br />
cout << "Please Enter the file name: " << endl;<br />
cin >> inFile;<br />
ins.open(inFile.c_str());<br />
if (ins.fail())<br />
{<br />
ins.clear(); <br />
cout << "*** ERROR: Can not open file " << endl;<br />
}<br />
string line;<br />
int lineCount = 0;<br />
getline(ins, line);<br />
while (line.length() != 0)<br />
{<br />
lineCount++;<br />
outs << line << endl;<br />
getline(ins, line);<br />
}<br />
<br />
<br />
}<br />
|
|
|
|
|
Hi guys, I just accidentally fix it, and now I can display
the whole file to screen.
<br />
while (line.length() != 0)<br />
{<br />
lineCount++;<br />
cout << line << endl;<br />
getline(ins, line);<br />
}<br />
I changed the outs, which is ofstream object, to cout <<.
It works, but I don't know why.
Now another problem arises. I'm thinking of the algorithm to
display only the first 4 lines and the last 4 lines.
Anyone want to share your opinion about the algorithm(not the
code) to me? Anyone know what I just did? outs should work,
but for some reason, I need to use cout <<.
Thanks
|
|
|
|
|
Alex Ngai wrote:
I changed the outs, which is ofstream object, to cout <<.
It works, but I don't know why.
ofstream is used to output to a file. Since you didn't specifically call the constructor for ofstream , it used the default constructor which does nothing, so output to it goes nowhere. cout is the pre-opened stream for writing to the screen (the "console").
- Mike
|
|
|
|
|
Thanks for your reply.
Right now I'm really having a diffcult time to develop the
algorithm to display only the first 4 lines and last 4 lines.
I'm trying to put the stream into the string object, line,
and using string class function to display the last 4 lines.
However, I can only display the first 4 lines. How can I display
the middle one and the last 4 lines?
Any input? Algorithm? Opinions?
Thanks.
Sample run looks like this:
This is line 1.
This is line 2.
This is line 3.
This is line 4.
.
.
.
This is line 12.
This is line 13.
This is line 14.
This is line 15.
|
|
|
|
|
How about you read each line and store it in an array of lines.
As you read each line, shuffle the existing lines through the array and read in the current line.
That way you will always have the last 4 lines in your array.
When you reach the end, just display the contents of your line array.
Be aware that your file may not have 8+ lines. It might have only 2 or it might have six (resulting in the two middle lines being printed twice).
You will have to check for this.
If sex is a pain in the ass, then you are doing it wrong!
|
|
|
|
|
HI!
I face some trouble in set the window's size. It seems MoveWindow set the size of whole window including the header. But I try to set the window has the exact client size I want, for example 128*128. How can i realize it?
|
|
|
|
|
You are not giving enough information. I will assume that you have a window and you want to fill
its client area with another window.
Use GetClientRect() to get the client area. You are probably using GetWindowRect()
|
|
|
|
|
|
i don't know if it is the right place to go with this question but mayby somebody will help me. i need to check if control(button,window,desktop icon etc.) i going to click with right mouse button, has context menu or not, and of course i have to do it from my programm , not just by clicking this control. Unfortunatly api getmenu() is no use here.
i will by greatful for any help.
Christopher.
chriss_rook
|
|
|
|
|
I don't think there is a way. When you right-click the control it is sent a WM_CONTEXTMENU message. A control may do whatever it wants when it gets this message.
...cmk
Save the whales - collect the whole set
|
|
|
|
|
I've got a situation where I would like to be able to OpenPrinter(...), and then be able to AddPrinter(...) using the configuration from the First printer.. Thereby duplicating the printer (with a different name), but keeping all the configuration on Windows2000.
Has anyone done anything like this before, or am I going down a dangerous path?
|
|
|
|
|
When I activate my window,my window will not hide the other application window.like when you activate the win2k's desktop,you can see the application
you have run.
|
|
|
|
|
I am trying to use the MM_ISOTROPIC mapping mode with a CScrollView. I keep getting the "Error: must call SetScrollSizes() or SetScaleToFitSize() before painting scroll view." message. To work around this I put a call to SetScrollSizes in my OnInitialUpdate() method. With this call I set the mapping mode to MM_TEXT and size to 100 x 100. I reset the mapping mode in OnPrepareDC to MM_ISOTROPIC and use the SetWindowExtent and SetViewportExt to get the right part of the document to show. This prevents the error but does not show any scroll bars?
Does any body use MM_ISOTROPIC with a CScrollView or know of a demo/sample that does this.
Thanks for any help!
|
|
|
|
|
You are not supposed to use MM_ISOTROPIC with scroll views. The Scroll view has a function
SetScaleToFitSize which will scale the view to the window size.
|
|
|
|
|
I would like to have single instance app that does the write
thing on XP. If some user tries to start the app and it is
running, the bring it to the front otherwise start new instance.
Also if a differnet user starts the app then they should get there
own instance. Anyone know of any place to read up on this behavior.
Thank You
Bo Hunter
|
|
|
|
|
It is in the codeproject.
Just try to search for "single instance"
Sonork 100.41263:Anthony_Yio
|
|
|
|
|
Does anybody know if there is a maximum interface card count defined in windows?
What about a maximum IP address count per interface?
Thanks
|
|
|
|
|
Don't know about max cards per system, but Windows only allows one IP per interface.
The question "Do computers think?" is the same as "Can submarines swim?"
DragonFire Software
Jeryth
|
|
|
|
|
Windows does allow multiple IPs per card. Go to your TCP/IP Properties for the ethernet card in question, click on the Advanced button. On the IP Settings tab you should the currently listed IP addresses for the interface. In your case, you should probably only see one. You can click on the Add... to add additonal IP addreses.
|
|
|
|
|
Hi,
I created a class from CFrameWnd that has a CListView as a view.
I created these kinds before but now I have a starnge problem
If I pop up this window and close it, everything is fine. But as soon as I even click inside the window and then close it, I get an exeption and the debugger throws me here:
<br />
CView* CFrameWnd::GetActiveView() const<br />
{<br />
ASSERT(m_pViewActive == NULL ||<br />
m_pViewActive->IsKindOf(RUNTIME_CLASS(CView)));<br />
return m_pViewActive;<br />
}
What is the problem ?
|
|
|
|
|
You could use ASSERT(::IsWindow(m_pViewAvtice) to see if the HWND is available. You could be probably deallocate the HWND somewhere
Sonork 100.41263:Anthony_Yio
|
|
|
|
|
I'm trying to use DirectX v9.0 to draw stippled lines. I use the ID3DXLine interface. For the most part it works. However, I can't get stippled (pattern) lines to render correctly. The pattern does not appear to render correctly. It seems like it only renders correctly if the line is drawn vertically. Any help would be greatly appreciated.
Gort...Klaatu, Barada Nikto!
|
|
|
|
|
I'll have to check my DX 9.0 book tonight, I only have my 8.1 with me now and it doesn't mention ID3DXLine at all, to give you a technical answer, supposing I can find it. A few things to check on in the mean time: update your DX runtime, 9.0b just came out a little while ago, it could be this, but I'm thinking unlikey. Also update your graphics drivers. I had difficulties rendering minor polys until I figured I needed to up my Detonators. BTW if you have an ATI card, don't forget to uninstall all drivers for it thru your control panel before you install the new ones, you get major problems otherwise. One final thought: diagonal lines can be hard to notice any patterns on them since the pixels only touch around the corners for the most part. Do you get this problem when drawing horizontal lines as well? Give me a code snippet to work with and I'll see what I can dig up.
The question "Do computers think?" is the same as "Can submarines swim?"
DragonFire Software
Jeryth
|
|
|
|