文章类型: VC&C++
关键词: VC,实现显示,自动隐藏任务栏,SHAppBarMessage
内容摘要: VC实现显示、自动隐藏任务栏(SHAppBarMessage)

VC实现显示、自动隐藏任务栏(SHAppBarMessage)

2016/8/17 11:03:06    来源:apple    阅读:

VC实现显示、自动隐藏任务栏(SHAppBarMessage)

一、显示和隐藏任务栏

要想对任务栏进行操作,首先当然需要获得任务栏的句柄,所以首先利用FindWindow获取句柄,再操作
示例代码:
1、隐藏任务栏
HWND hWnd = FindWindow(_T("Shell_TrayWnd"),NULL);
ShowWindow(hWnd,SW_HIDE);
2、显示任务栏
HWND hWnd = FindWindow(_T("Shell_TrayWnd"),NULL);
ShowWindow(hWnd,SW_SHOW);

二、自动隐藏任务栏和取消自动隐藏任务栏(隐藏于自动隐藏不同)
需要利用一API函数:SHAppBarMessage
UINT_PTR SHAppBarMessage(      
    DWORD dwMessage,
    PAPPBARDATA pData
);

参数说明:
dwMessage   可以为下列参数
ABM_ACTIVATE                           激活一个 appbar 
ABM_GETAUTOHIDEBAR               检索屏幕边缘的 appbar
ABM_GETSTATE                           检索最顶层的Microsoft Windows任务栏
ABM_GETTASKBARPOS                 检索任务栏
ABM_NEW                                    注册一个新的appbar,该系统并发送一消息给appbar 
ABM_QUERYPOS                           appbar 大小和屏幕位置 
ABM_REMOVE                               取消注册一个 appbar,并从系统内部列表移出
ABM_SETAUTOHIDEBAR                在屏幕边缘注册或取消注册appbar
ABM_SETPOS                               设置appbar 的大小和屏幕位置 
ABM_SETSTATE                           设置appbar为最顶层
ABM_WINDOWPOSCHANGED         当appbar得状态发送改变时向系统发送消息

pData 
一个APPBARDATA结构体

示例代码:

void AutoHideTaskBar(BOOL bHide)
{
      //这三句视情况加于不加
      #ifndef   ABM_SETSTATE 
      #define   ABM_SETSTATE             0x0000000a 
      #endif

       LPARAM lParam;
       if(bHide == TRUE)
       {
              lParam = ABS_AUTOHIDE;//自动隐藏
       }
       else
       {
              lParam = ABS_ALWAYSONTOP;//取消自动隐藏
       }

       APPBARDATA apBar; 
       memset(&apBar,0,sizeof(apBar)); 
       apBar.cbSize = sizeof(apBar); 
       apBar.hWnd = FindWindow("Shell_TrayWnd", NULL);
       if(apBar.hWnd != NULL) 
       { 
              apBar.lParam   =   lParam; 
              SHAppBarMessage(ABM_SETSTATE,&apBar); //设置任务栏自动隐藏
       }   
}

调用 AutoHideTaskBar(TRUE);//or 
       AutoHideTaskBar(FALSE);//

↑ 上一篇文章:VC6代码移植到高版本VC时候的常见问题 关键词:VC6代码移植到高版本VC时候的常见问题 发布日期:2016/8/16 16:31:13
↓ 下一篇文章:VC的MFC中的系统函数OnOK()、OnCancel()、OnClose()、OnDestroy()之间的区别 关键词:VC,MFC,系统函数,OnOK(),OnCancel(.. 发布日期:2016/8/17 11:06:57
相关文章:
VC中,出现oxc0000005 读取位置oxddddddddd 时发生访问冲突,0xcccccccc、0xcdcdcdcd和 0xfeeefeee 异常值说明 关键词:VC,oxc0000005,读取,位置,oxddddddddd,0x0000000,发生,访问,.. 发布日期:2018-07-27 10:58
如何将bmp格式的图片转换成8位256色且保证不失真呢 关键词:VC,ps,将,bmp图片,转换,8位,256色,不失真,faststone,image,vie.. 发布日期:2016-08-10 16:28
在VC的MFC中修改静态文本框中文字的字体、颜色 关键词:VC,MFC,修改,静态,文本框,文字,字体,颜色 发布日期:2017-11-29 16:43
相关目录:.NETVC&C++软件开发
我要评论
正在加载评论信息......