最小化后窗口不会显示(最大化)

时间:2011-01-24 07:29:31

标签: c++ winapi windows-ce

我有一个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);

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:3)

ShowWindow(HWND hWnd, int nCmdShow)中的第二个参数可以取值:

SW_HIDE, SW_SHOW, SW_SHOWNA, SW_SHOWNORMAL

最后一个激活并显示窗口;它将恢复到原来的大小和位置。

关于WinCE中的Windows功能,您可以阅读MSDN

答案 2 :(得分:1)

尝试先恢复窗口,然后最大化。

我没有Windows CE,所以无法测试,但这应该可行。

干杯&第h。,