如何隐藏win2000最下面的任务条?

解决方案 »

  1.   

    HWND hwnd = ::FindWindow("Shell_traywnd", NULL);
    UINT nShowFlags = SWP_NOACTIVATE;
    nShowFlags |= ::IsWindowVisible(hwnd)? SWP_HIDEWINDOW: SWP_SHOWWINDOW;
    ::SetWindowPos(hwnd, NULL, 0, 0, 0, 0, nShowFlags);
      

  2.   

    包含头文件shellapi.h APPBARDATA taskbar={0};
    taskbar.cbSize=sizeof(APPBARDATA);
    UINT uState=SHAppBarMessage(ABM_GETSTATE,&taskbar);
    if(uState&ABS_AUTOHIDE)
    AfxMessageBox(_T("状态栏已经隐藏!"));
    else
    {
    taskbar.lParam=(ABS_AUTOHIDE | ABS_ALWAYSONTOP);
    SHAppBarMessage(ABM_SETSTATE, &taskbar); 
    }
      

  3.   

    隐藏:
    HWND hwnd = ::FindWindow("Shell_traywnd", NULL);CWnd *pWnd = CWnd::FromHandle(hwnd);
    if(pWnd)
    {
    pWnd->ShowWindow(SW_HIDE);int screenx=GetSystemMetrics(SM_CXSCREEN);
    int screeny=GetSystemMetrics(SM_CYSCREEN);CRect rcWorkArea;
    rcWorkArea.left = 0;
    rcWorkArea.right = screenx;
    rcWorkArea.top = 0;
    rcWorkArea.bottom = screeny;::SystemParametersInfo( SPI_SETWORKAREA, 0, &rcWorkArea, SPIF_SENDCHANGE );
    }显示:HWND hwnd = ::FindWindow("Shell_traywnd", NULL);CWnd *pWnd = CWnd::FromHandle(hwnd);
    if(pWnd)
    {
    CRect rcTaskbar;
    pWnd->GetWindowRect(rcTaskbar);int screenx=GetSystemMetrics(SM_CXSCREEN);
    int screeny=GetSystemMetrics(SM_CYSCREEN);CRect rcWorkArea;
    rcWorkArea.left = 0;
    rcWorkArea.right = screenx;
    rcWorkArea.top = 0;
    rcWorkArea.bottom = screeny - rcTaskbar.Height();::SystemParametersInfo( SPI_SETWORKAREA, 0, &rcWorkArea, SPIF_SENDCHANGE );pWnd->ShowWindow(SW_SHOW);
    }
      

  4.   

    原来有两个方法,API函数的和SHELL接口方法.
    1)SystemParametersInfo( SPI_SETWORKAREA, 0, &rcWorkArea, SPIF_SENDCHANGE );
    2)SHAppBarMessage(ABM_SETSTATE, &taskbar);