有时候在WinCE工控机上开发的应用程序需要隐藏任务栏,为了让应用程序全屏,最大化利用工控机那小小的屏幕,同时确保了应用程序不会意外退出。
重写MainFrame的PreCreateWindow虚函数,代码如下:
if (!CFrameWnd::PreCreateWindow(cs))
return FALSE;
// TODO: 在此处通过修改
// CREATESTRUCT cs 来修改窗口类或样式
// 获得任务栏窗口句柄 直接隐藏 "开始" 任务栏
HWND hwndTaskBar;
hwndTaskBar = ::FindWindow(_T("HHTaskBar"), NULL);
::ShowWindow(hwndTaskBar, SW_HIDE);
// 在窗口创建完成之前 使应用程序全屏
int iScreenX = GetSystemMetrics(SM_CXSCREEN); // 获取屏幕宽度
int iScreenY = GetSystemMetrics(SM_CYSCREEN); // 获取屏幕高度
CRect rectWorkArea;
rectWorkArea.left = 0;
rectWorkArea.right = iScreenX;
rectWorkArea.top = 0;
rectWorkArea.bottom = iScreenY;
// 设置工作区全屏
::SystemParametersInfo(SPI_SETWORKAREA, 0, &rectWorkArea, SPIF_SENDCHANGE);
return TRUE;
即可实现应用程序窗口显示整个屏幕,在退出应用程序时一般需要恢复显示任务栏
重写消息响应函数OnClose(), 代码如下:
// TODO: 在此添加消息处理程序代码和/或调用默认值
// 程序退出后 显示系统任务栏
HWND hwndTaskBar;
hwndTaskBar = ::FindWindow(_T("HHTaskBar"), NULL);
::ShowWindow(hwndTaskBar, SW_SHOW);
CFrameWnd::OnClose();