MFC隐藏/显示任务栏

      在mfc中我们可以通过代码来控制任务栏的显示与隐藏。这主要是通过对名为Shell_TrayWnd的窗口进行操作。代码如下:

void CTestDlg::HideTaskBar(BOOL boolHide/* =FALSE */)
{
 CWnd *pWnd=NULL;
 pWnd=FindWindow("Shell_TrayWnd",NULL);
 LPARAM lparam;
 if(boolHide)
 {//隐藏任务栏
  lparam=ABS_AUTOHIDE | ABS_ALWAYSONTOP;
  ::ShowWindow(pWnd->m_hWnd,SW_HIDE);
 }
 else
 {//显示任务栏
  lparam=ABS_ALWAYSONTOP;
  ::ShowWindow(pWnd->m_hWnd,SW_SHOW);
 }
#ifndef ABM_SETSTATE
#define ABM_SETSTATE 0x0000000a
#endif
 APPBARDATA apBar;
 memset(&apBar, 0, sizeof(apBar));
 apBar.cbSize = sizeof(apBar);
 apBar.hWnd = pWnd->m_hWnd;
 if(apBar.hWnd != NULL)
 {  
  apBar.lParam = lparam;
  ::SHAppBarMessage(ABM_SETSTATE , &apBar); //显示隐藏任务栏
 }
}

留言

Your email address will not be published. Required fields are marked *