窗口全屏,覆盖任务栏

40 篇文章 0 订阅
21 篇文章 0 订阅

给人做个东西,有这个要求

先放上一些玩意的隐藏
任务栏::ShowWindow(::FindWindow(_T("Shell_TrayWnd"), NULL), SW_HIDE);
开始菜单 ::ShowWindow(::GetDlgItem(::FindWindow(_T("Shell_TrayWnd"), NULL),0x130), SW_HIDE);//0x130 是开始按钮的ID
桌面 ::ShowWindow(::FindWindow(_T("ProgMan"), NULL), SW_HIDE);

禁用可以用EnableWindow()

以为隐藏任务栏就完事,结果下面不给腾出位子来,任务栏原先的地方还是不会被覆盖
在任务栏上右键,属性,设置任务栏自动隐藏任务栏时发现窗口会占据那块位置,网上找到个设置自动隐藏的代码,结合隐藏任务栏,成功达到目的

VOID HideTaskBar(BOOL bHide)
{
	int nCmdShow;
	HWND hWnd;
	LPARAM lParam;

	hWnd = FindWindow(_T("Shell_TrayWnd"),NULL);
	if(bHide == TRUE)
	{
		nCmdShow = SW_HIDE;
		lParam = ABS_AUTOHIDE | ABS_ALWAYSONTOP;
	}
	else
	{
		nCmdShow = SW_SHOW;
		lParam = ABS_ALWAYSONTOP;
	}

	ShowWindow(hWnd,nCmdShow);

	APPBARDATA apBar; 
	memset(&apBar, 0, sizeof(apBar)); 
	apBar.cbSize = sizeof(apBar); 
	apBar.hWnd = hWnd; 
	if(apBar.hWnd != NULL) 
	{ 
		apBar.lParam = lParam; 
		SHAppBarMessage(ABM_SETSTATE, &apBar);
	} 
}


 

用到shellapi需要包含头文件

vs08+xp测试通过
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值