Следующая функция позволяет не только скрыть/показать панель задач, но и установить рабочую область десктопа (при помощи SystemParametersInfo), чтобы при скрытии панель задач внизу не оставалось пустого места: void gShowHideTaskBar(BOOL bHide /*=FALSE*/) { CRect rectWorkArea = CRect(0,0,0,0); CRect rectTaskBar = CRect(0,0,0,0);
CWnd* pWnd = CWnd::FindWindow("Shell_TrayWnd", "");
if( bHide ) { // Скрываем панель задач 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 { // Показываем панель задач 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); } } } |