我有一个Windows CE应用程序,用于记录移动设备的按键。有一个按钮可以初始化录制功能,该功能通过调用以下命令来使主窗口最小化:

ShowWindow (hWnd, SW_MINIMIZE);

在最小化窗口之前,我注册了触发按钮事件(通过自定义API)。在最小化应用程序的同时,我单击了一些按钮,然后按触发按钮以结束 session 。当我收到触发按钮事件时,我致电:
ShowWindow (hWnd, SW_MAXIMIZE);

问题在于窗口没有最大化。如果我调试应用程序,则可以看到调用了ShowWindow函数。通过切换到应用程序,我可以通过TaskManager将其带到前台。

有人可以解释这个原因并提出我可以采取的任何解决方案吗?

编辑:
解:
在调用ShowWindow之前,先调用“SetForegroundWindow”,并使用SW_RESTORE而不是SW_MAXIMIZE。 SW_MAXIMIZE不起作用。
SetForegroundWindow (g_hWndMain);
ShowWindow (g_hWndMain, SW_RESTORE);

最佳答案

Showwindow可能由于多种原因而失败。

您可以尝试:

1)设定前景
SetForegroundWindow
对于WinCE,请特别引用以下MSDN文章。
http://msdn.microsoft.com/en-us/library/ms940024.aspx
SetForegroundWindow((HWND)(((ULONG) hwnd) | 0x01) );
2)向前走
BringWindowToTop http://msdn.microsoft.com/en-us/library/ee504610.aspx

09-28 03:00