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

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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值