我正在尝试为Windows CE 5.0编写全屏应用程序。我在Linux下使用CEGCC来编译我的应用程序,所以我只限于Windows API - 即没有花哨的GUI设计器,没有Visual Studio,没有MFC,没有.NET。
到目前为止,我使用SHFullScreen尝试了Microsoft的示例,但没有运气。我不想全局隐藏任务栏(即我希望它在我的应用程序关闭时表现正常,或者我应该说崩溃,并且无法恢复其状态。)
关于这个的任何想法?一个简单的程序,这样做(当然,不仅仅是“我想是这样”),即在Windows CE 5.0中显示一个窗口(或者我猜的任何Windows CE / Mobile / Embedded,所以我至少有一个线索)屏幕右下角的左上角,在任务栏上方,非常有帮助。
谷歌没有帮助我,如果你问的话(但也许我今天没有使用正确的条款)。
干杯
答案 0 :(得分:2)
任务栏应该位于所有窗口之上并且不依赖于进程,因此要获得“全屏”效果,您必须隐藏它。
Here's a C# version应该很容易转换为C(因为它主要是P /调用C)。
当你的应用程序退出(并且应该)时,你的应用程序肯定会反转,但是如果它崩溃了,那么shell就无法“知道”它需要恢复任务栏。当然,如果您控制操作系统,您可以随时创建一个新的Shell来监控此情况,但我建议您尝试使您的应用不崩溃。
答案 1 :(得分:1)
您可以使用Structured Exception Handling(SEH)在崩溃前恢复任务栏。
答案 2 :(得分:1)
我设法通过将WndProc
放在case WM_CREATE
下来解决我的所有要求:
int ScreenWidth = GetSystemMetrics(SM_CXSCREEN);
int ScreenHeight = GetSystemMetrics(SM_CYSCREEN);
SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, ScreenWidth, ScreenHeight, 0);
HWND TaskBarWnd = FindWindow("HHTaskBar", "");
if (TaskBarWnd != NULL)
SetWindowPos(TaskBarWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE | SWP_NOSIZE | SWP_NOMOVE);