Re: BringWindowToTop: "Simulate" "ALT-Tab" keys
"Guido Franzke" <guidof73@yahoo.de> wrote in message
news:ecQnmi6lHHA.3952@TK2MSFTNGP03.phx.gbl...
The only thing I can do with the application, is get
it's window handle with a registered Windows message and then send some
well-defined messages and get answers via OnCopyData.
And then asks for the window handle with PostMessage, Application B
answers
via an afx_msg function in application A.
In application A I can now minimize and maximize application B with
SendMessages. If I do this, the application B is first minimized, then
maximized again, but not repainted on the screen, so I don't see the
application B in front of my application A.
Do you send WM_SYSCOMMAND with SC_MINIMIZE/SC_MAXIMIZE messages to the HWND,
or do you send some private message that causes App B to privately do the
minimizing/maximizing?
With SetForegroundWindow and
other Win32 API calls, don't effect application B.
Here you say SetForegroundWindow() does not have any effect.
Only when I use the ALT-tab key and select application B, it is shown on
top
of the screen and repainted, so I can work with. I have not found out,
which
function calls I must execute to get the same result, bringing it to the
top
and forcing it to repaint. Bringing it to the top with SetForegroundWindow
functions, but not the repaint (I tried RedrawWindow,UpdateWindow).
But here you say SetForegroundWindow *does* bring it to the top. Which one
is it?
Does your code work at all when you temporarily disable your Application A
from being a full screen dialog? What if it's a normal dialog instead?
The problem may be the HWND you get back from the registered Windows
message. Are you sure it really is the HWND of the visible window you want
to bring to top/repaint? Or is it just a window you command the App A with,
which internally reacts to the messages you send this HWND by manipulating
its visible window? Find out the HWND, then use Spy++ to see if that window
is visible and is the one you think it is.
BTW, which HWND to you send the registerered Windows message to in order to
get the HWND? And how does that HWND respond with another HWND? Seems odd.
Could you snip the relevant code out of your app and post it here? It may
tell us more than your (excellent) descriptions.
Thanks,
David