隐藏系统任务栏
最簡單的方法為:
FindWindow("Shell_TrayWnd",NULL)->ShowWindow(SW_HIDE);
?
上面代碼確能隱藏任務欄,但是,隨便打開一個窗口最大化,原來任務欄的地方仍被空白占據著。調用Win32 API- SystemParametersInfo(SPI_SETWORKAREA),重新設置桌面工作區域,可解決這個問題,代碼如下:
void gShowHideTaskBar(BOOL bHide /*=FALSE*/) { CRect rectWorkArea = CRect(0,0,0,0); CRect rectTaskBar = CRect(0,0,0,0); CWnd* pWnd = CWnd::FindWindow(_T("Shell_TrayWnd"), NULL); if( bHide ) { // Code to Hide the System Task Bar SystemParametersInfo(SPI_GETWORKAREA, 0, (LPVOID)&rectWorkArea, 0); if( pWnd ) { pWnd->GetWindowRect(rectTaskBar); rectWorkArea.bottom += rectTaskBar.Height(); SystemParametersInfo(SPI_SETWORKAREA, 0, (LPVOID)&rectWorkArea, 0); pWnd->ShowWindow(SW_HIDE); } } else { // Code to Show the System Task Bar SystemParametersInfo(SPI_GETWORKAREA, 0, (LPVOID)&rectWorkArea, 0); if( pWnd ) { pWnd->GetWindowRect(rectTaskBar); rectWorkArea.bottom -= rectTaskBar.Height(); SystemParametersInfo(SPI_SETWORKAREA, 0, (LPVOID)&rectWorkArea, 0); pWnd->ShowWindow(SW_SHOW); } } }
總結
- 上一篇: MASM32编程获取任务栏高度
- 下一篇: Qt 模型视图编程之表头设置