Re: EnableWindow() problem
- From: Theo Landman <tlandman_NO_SPAM@xxxxxxxxxxxxxxxxxxxxx>
- Date: Tue, 19 Jun 2007 14:51:58 +0200
AnRil schreef:
Dnia 19-06-2007 o 13:52:42 Theo Landman <tlandman_NO_SPAM@xxxxxxxxxxxxxxxxxxxxx> napisał(a):No luck either.
AnRil schreef:Dnia 19-06-2007 o 11:33:35 Theo Landman <tlandman_NO_SPAM@xxxxxxxxxxxxxxxxxxxxx> napisał(a):Hello AnRil,
Hello,I think you should check if the window you have in the first return of AfxGetMainWnd() is the same window as in the second time. If you have a variable of your CWinApp derived class, (like CSampleApp theApp), try theApp.GetMainWnd().
I have trouble with AfxGetMainWnd()->EnableWindow() at least on Windows XP. Not tested this . My main application needs to run another GUI program and while this program run should not be accessible for user input. In order to do this I call AfxGetMainWnd()->EnableWindow(FALSE); Start the GUI program Then use a bit of code to wait for the GUI to finish. See snippet below:
HANDLE aHandles[2];
aHandles[0] = GetCurrentProcess();
aHandles[1] = hGUI;
do
{
DWORD dwResult = ::MsgWaitForMultipleObjects(2, aHandles,
FALSE, INFINITE, QS_ALLEVENTS);
if ( !prcGUI.IsRunning() )
break;
} while ( AfxGetThread()->PumpMessage() );
However, when the GUI program stops my main application won't get the focus automatically again after I call AfxGetMainWnd()->EnableWindow(TRUE); The application behaves as being minimized and I have to explicitly click on the program icon in the desktop bar to bring it back up.
I tried different combinations of SetActiveWindow(), SetForegroundWindow(), BringWindowToTop() and SetFocus() but nothing happens.
If I don't use EnableWindow() this problem does not occur.
So in short how to force my application back to the foreground?
Any help appreciated,
Theo
Thanks for the suggestion, but that didn't solve the problem either. BTW, my application is not an automation client/server.
Theo
What about AfxGetApp()->GetMainWnd()? Or AfxGetApp()->GetMainWnd()->GetForegroundWindow(). Does any of this help? In my program it did help.
.
- References:
- EnableWindow() problem
- From: Theo Landman
- Re: EnableWindow() problem
- From: AnRil
- Re: EnableWindow() problem
- From: Theo Landman
- Re: EnableWindow() problem
- From: AnRil
- EnableWindow() problem
- Prev by Date: Re: EnableWindow() problem
- Next by Date: Re: Unhandled exception on clicking dialog box OK button,Its URGENT
- Previous by thread: Re: EnableWindow() problem
- Next by thread: Re: EnableWindow() problem
- Index(es):