我是嵌入式编程的老手,但对 CE 很陌生,在做相当简单的事情时遇到了很多麻烦,因为我不熟悉 API 并且难以理解晦涩难懂的 MSDN 文档。
我要做的就是最小化和最大化从其中一个应用程序运行的两个单独的应用程序。
例如,应用程序 A 决定现在是它出现的时候了,然后最小化应用程序 B(应用程序 B 是第三方应用程序,例如记事本,无法访问源代码等),然后在稍后阶段最大化 B 并最小化自身。
应用程序 A 将由我自己编写。
我敢肯定这一定很简单,但是在哪里可以找到答案.. :)
提前致谢。意向书
我是嵌入式编程的老手,但对 CE 很陌生,在做相当简单的事情时遇到了很多麻烦,因为我不熟悉 API 并且难以理解晦涩难懂的 MSDN 文档。
我要做的就是最小化和最大化从其中一个应用程序运行的两个单独的应用程序。
例如,应用程序 A 决定现在是它出现的时候了,然后最小化应用程序 B(应用程序 B 是第三方应用程序,例如记事本,无法访问源代码等),然后在稍后阶段最大化 B 并最小化自身。
应用程序 A 将由我自己编写。
我敢肯定这一定很简单,但是在哪里可以找到答案.. :)
提前致谢。意向书
首先,您需要使用FindWindow API 函数或其他方法来定位窗口句柄 (hwnd)。接下来使用ShowWindow API 函数指定SW_HIDE或SW_SHOW来分别隐藏或显示窗口。请注意,Windows CE 5.0 在技术上不支持 Win32 窗口状态,如 SW_MINIMIZE、SW_MAXIMIZE 等。
一个简单的例子是:
HWND hWnd = ::FindWindow( _T("Notepad"), NULL);
::ShowWindow(hWnd, SW_HIDE);
您可能还会发现 SetForegroundWindow 和 SetWindowPos 很有用。
这就是我使用它们来显示和隐藏应用程序的方式:
SetWindowPos(windowToHide, 0, 0, 0, 0, 0, SWP_HIDEWINDOW);
SetWindowPos(windowToShowInFullScreen, HWND_TOP, 0, 0, 240, 320, SWP_SHOWWINDOW);
SetForegroundWindow(windowToShow);