Search code examples
c++winapiwindows-ce

Window does not get displayed(Maximized) after Minimizing


I have a Windows CE application which logs key strokes of the mobile device. There's a button to initialize the recording functionality, which forces the main window to minimize by calling:

ShowWindow (hWnd, SW_MINIMIZE);

Before minimizing the window, I register to the trigger button event (via a custom API). While the app is minimized I perform some button clicks and press the trigger button to end the session. When I receive the trigger button event, I call:

ShowWindow (hWnd, SW_MAXIMIZE);

The problem is that the window does not get maximized. If I debug the application, I could see that the ShowWindow function is called. I could bring it to the foreground via the TaskManager by switching to the application.

Can someone please explain the cause of this and suggest any solution that I can take?

EDIT: Solution: Call "SetForegroundWindow" before calling ShowWindow and use SW_RESTORE instead of SW_MAXIMIZE. SW_MAXIMIZE does not work.

SetForegroundWindow (g_hWndMain);
ShowWindow (g_hWndMain, SW_RESTORE);

Solution

  • Showwindow could fail by several reasons.

    You could try:

    1) Set foreground

    SetForegroundWindow

    For WinCE specifically refer to the following MSDN article.
    http://msdn.microsoft.com/en-us/library/ms940024.aspx

    SetForegroundWindow((HWND)(((ULONG) hwnd) | 0x01) );

    2) Bring to front

    BringWindowToTop
    http://msdn.microsoft.com/en-us/library/ee504610.aspx