码迷,mamicode.com
首页 > 其他好文 > 详细

隐藏系统任务栏

时间:2016-03-29 16:36:23      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:

原文链接:http://blog.csdn.net/flyoxs/article/details/4171137

最简单的方法为:

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); 
        } 
    } 
}

隐藏系统任务栏

标签:

原文地址:http://www.cnblogs.com/wuyuan2011woaini/p/5333322.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!