我有一个Windows CE应用程序,用于记录移动设备的击键。有一个按钮来初始化录制功能,通过调用强制主窗口最小化:
ShowWindow (hWnd, SW_MINIMIZE);
在最小化窗口之前,我注册到触发按钮事件(通过自定义API)。当应用程序最小化时,我执行一些按钮单击并按下触发按钮以结束会话。当我收到触发按钮事件时,我打电话给:
ShowWindow (hWnd, SW_MAXIMIZE);
问题是窗口没有达到最大化。如果我调试应用程序,我可以看到调用ShowWindow函数。我可以通过切换到应用程序,通过TaskManager将它带到前台。
有人可以解释一下这个原因,并建议我可以采取任何解决方案吗?
编辑: 解: 在调用ShowWindow之前调用“SetForegroundWindow”并使用SW_RESTORE而不是SW_MAXIMIZE。 SW_MAXIMIZE不起作用。
SetForegroundWindow (g_hWndMain);
ShowWindow (g_hWndMain, SW_RESTORE);
答案 0 :(得分:5)
Showwindow
可能由于以下几个原因而失败。
你可以尝试:
SetForegroundWindow
对于WinCE,请参阅以下MSDN文章 http://msdn.microsoft.com/en-us/library/ms940024.aspx
SetForegroundWindow((HWND)(((ULONG) hwnd) | 0x01) );
BringWindowToTop
http://msdn.microsoft.com/en-us/library/ee504610.aspx
答案 1 :(得分:3)
ShowWindow(HWND hWnd, int nCmdShow)
中的第二个参数可以取值:
SW_HIDE, SW_SHOW, SW_SHOWNA, SW_SHOWNORMAL
最后一个激活并显示窗口;它将恢复到原来的大小和位置。
关于WinCE中的Windows功能,您可以阅读MSDN。
答案 2 :(得分:1)
尝试先恢复窗口,然后最大化。
我没有Windows CE,所以无法测试,但这应该可行。
干杯&第h。,