|
I've tried this. But when I've set main dialog as parent of this modeless dialog,
the forever loop in it's message handler stopped main window too.
I guess it's because main thread's GetMessage loop is fetching also child dialog's messages ??
When I've set the desktop window as parent of the modeless dialog it worked but the
dialog was attached to desktop not to my app.
rrrado
|
|
|
|
|
I see what you mean. The secondary window shouldn't be a child of a window in a different
thread I suppose, so it shouldn't be a child window. Still it doesn't make sense that the main
thread is processing the child dialog's messages if the child dialog was created on a different
thread.
What is this "forever loop"? You are in an endless loop on the same thread as your UI?
Are you sure you're not just hogging too much CPU time of the thread's
timeslice in this loop?
-- modified at 13:33 Monday 11th December, 2006
Re-worded
|
|
|
|
|
sorry I mean endless loop. It was while(1) Sleep(1000); so it spent no CPU time.
I haven't tried to stop it in debugger and look what is each thread doing
it would be good idea, unfortunately I don't have that project here
rrrado
|
|
|
|
|
By the way, I don't think separate UI threads are necessary in this case. Unless you are posting
messages from another thread to the windows then your one UI thread should have no problem
keeping up. There's only so much a user can do at a time. Apps can have hundreds of windows
on the same UI thread no problem.
Mark
|
|
|
|
|
Having a parent and child window owned by different threads is problematic because the threads will be blocking on each other when any messages are sent between them (such as notification messages). Keep your UI on the main thread and do your lengthy work in a worker thread.
|
|
|
|
|
Thank you guys.
I wanted to make sure that child window in separate thread is not correct design.
I'll try to go with just main UI thread and I'll see how it will be working.
rrrado
|
|
|
|
|
Lets say ur child dialogs class is CChildDlg
Register this class by calling the function RegisterClassEx.
Implementation is below:
WNDCLASSEX wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = ChildWndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = _hInst;
wcex.hIcon = NULL;
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wcex.lpszMenuName = NULL;
wcex.lpszClassName = "CChildDlg";
wcex.hIconSm = NULL;
if (!RegisterClassEx(&wcex))
{
//some error
}
Then declare the "ChildWndProc" wndproc for ur CChildDlg class as mentioned below:
ChildWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_COMMAND:
break;
case WM_MOUSEMOVE: break;
case WM_CLOSE:
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
this will help u..
but mind you always create the CChildDlg in a separate thread so as this doesnt stop the main application, else it will function as a normal child window class.
Sunil
|
|
|
|
|
Greetings:
I am looking for and evaluating MFC based charting libraries. Line charts, bars, pies, 2D, 3D, hyperspace, the works.
Any suggestions?
Thanks,
Mark
|
|
|
|
|
I'm using mouse wheel as user input in a CWnd. But when vertical scroll bars are on, I'm receiving OnVScroll() messages instead of OnMouseWheel() messages.
How can I ignore OnVScroll() messages, and always receive OnMouseWheel() as if the scrollers were not enabled?
Thanks
|
|
|
|
|
Jesper Knudsen wrote: But when vertical scroll bars are on, I'm receiving OnVScroll() messages instead of OnMouseWheel() messages.
Do you mean to say that, even if you are using mouse wheel for vertical scrolling, you are getting OnVScroll called ?
It should not.
Jesper Knudsen wrote: How can I ignore OnVScroll() messages, and always receive OnMouseWheel() as if the scrollers were not enabled?
I might have interpreted your question wrongly, but OnVScroll(WM_VSCROLL) will be called only when you use cursor to drag scrollbar. In case on mouse wheel it will not be called.
-- modified at 10:48 Monday 11th December, 2006
|
|
|
|
|
Well, I am infact not getting mouse wheel messages, only vscroll. That is, if the scroll bar is on. I think it depends on the mouse driver. Once I got two mice connected. One would send mouse wheel as expected, another would translate wheel messages to vscroll.
So I need to break in, where the mouse wheel comes in to reject cscroll messages on mouse wheel.
|
|
|
|
|
Hi
Can anyone point me in the right direction. I have a MFC application that I would like to profile. I have the right version of VC++ and have turned on all the profiling options according to the documentation as far as I can tell.
When I run the profiler I get the initial startup dialogs from my app but the main window never appears. Task manager shows that an app of the same name but with a ._ex extension is running. If I kill this process then the profiler complains that the .pbo file wasn't of the right format.
What am I doing wrong?
Many thanks for any guidance that can be provided.
Andrew Hoole
|
|
|
|
|
Profiled/instrumented application can take a LOT longer to run than even a debug version.
Is the process running or is it standing still ( 0% CPU ) ?
just to be certain, put a couple of output traces here and there in your code to let you know that the thing is running ok.
|
|
|
|
|
It is standing still on 0% CPU. I have left it for quite a while without seeing anything happen.
Andrew Hoole
|
|
|
|
|
If you disable profiling, does it run as normal?
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
Dear all,
I changed tab style to display vertically at the rightside of the property page using TCS_RIGHT. But it is not visible first time the dialog appears and when i click any of the tab in the group ,all the tabs will appears.
The problem is the text in the tab control is still displaying in horizontal style
Regards
Manjunath S
Manjunath S
GESL
Bangalore
|
|
|
|
|
Are you using common controls version 6? If so, then the tab control no longer supports the left/right styles.
|
|
|
|
|
Michael Dunn wrote: ...common controls version 6? If so, then the tab control no longer supports the left/right styles.
Really? Is this because of the "This style is not supported if you use visual styles"
restriction?
|
|
|
|
|
Yes, that's what "This style is not supported if you use visual styles" means - that style bit gets ignored when you use common controls v6.
|
|
|
|
|
Never mind - I see it under TCS_BOTTOM, which is the first place I'd look if I wanted
tabs on the right
Thanks for the heads-up!
|
|
|
|
|
Hi all,
I'm looking for a more intellegent way to get data from a file and manage that data. For instance lets say i have a file with the following data in it:
[Category A]
filename = file1.txt
fileExtension = txt
[Category B]
ipAddress = 192.168.0.1
portNumber = 101
So how can I access only the parts within the file that is useful?? , without hardcoding anything.
Many Thanx
The only programmers that are better than C programmers are those who code in 1's and 0's.....
Programm3r
|
|
|
|
|
What about using XML ?
Another solution would be to use a class that parses INI files (that is, files that have the same structure as your). I think there are some such classes on this website.
|
|
|
|
|
Thank you Cedric...
"....I think there are some such classes on this website....." you mean on code project?
The only programmers that are better than C programmers are those who code in 1's and 0's.....
Programm3r
|
|
|
|
|
Programm3r wrote: "....I think there are some such classes on this website....." you mean on code project?
Yes of course. Take a look here[^] for example (there are some other, just do a search in the articles in the MFC/C++ category).
|
|
|
|
|
Many thanx Cedric .... I appriciate the help
The only programmers that are better than C programmers are those who code in 1's and 0's.....
Programm3r
|
|
|
|