有時候在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();