[请问]如何显示被自动隐藏的任务栏。

张胖子1984 2006-09-07 11:38:47
请问各位,如何才能显示被自动隐藏的任务栏,而不用FlashWindow一类的操作(即除了任务栏被显示外不会有窗口焦点变化等其他影响),就像鼠标移动到屏幕下方时一样,只是显示,而没有焦点变化等。

谢谢!
...全文
468 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
templarzq 2006-09-08
  • 打赏
  • 举报
回复
mark
DittoHell 2006-09-07
  • 打赏
  • 举报
回复
void CShowHideTaskbarDlg::OnShowhidetaskbar()
{

static BOOL i;
//i=TRUE;
i=!i;
gShowHideTaskBar(i);
//i=!i;

//gShowHideTaskBar(TRUE);
// TODO: Add your control notification handler code here

}
//void gShowHideTaskBar(BOOL bHide /*=FALSE*/)


//隐藏或者显示系统任务条
void CShowHideTaskbarDlg::gShowHideTaskBar(BOOL bHide )
{

//定义系统工作区并初始化
CRect rectWorkArea = CRect(0,0,0,0);
//定义系统任务条并初始化
CRect rectTaskBar = CRect(0,0,0,0);

CWnd* pWnd = CWnd::FindWindow("Shell_TrayWnd", "");

// 隐藏系统任务条
if( bHide )
{
//得到系统工作区(不包括系统任务条)
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
{
//得到系统工作区(不包括系统任务条)
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);
}
}
}
palmax 2006-09-07
  • 打赏
  • 举报
回复
坐标也不难吧,你把它再往上移一个任务栏窗口的高度就可以了
张胖子1984 2006-09-07
  • 打赏
  • 举报
回复
[任务栏]
TaskBar
系统那个
张胖子1984 2006-09-07
  • 打赏
  • 举报
回复
谢谢 SoLike(思危)
那是要自己指定TaskBar的坐标?
palmax 2006-09-07
  • 打赏
  • 举报
回复
楼主到底说的是 [任务栏] 还是 你的程序在任务栏的AppWindow?
思危 2006-09-07
  • 打赏
  • 举报
回复
用SetWindowPos显示,注意要用参数 SWP_NOACTIVATE
palmax 2006-09-07
  • 打赏
  • 举报
回复
既然任务栏是鼠标移动到窗口的那个rect里就会显示出来,那你给任务栏窗口发WM_MOUSEMOVE消息试试
longbeibei 2006-09-07
  • 打赏
  • 举报
回复
张胖子1984 2006-09-07
  • 打赏
  • 举报
回复
MS我表达的还是很不清楚:)
ShowWindow的方法是可以显示和隐藏TaskBar
而且是根本的隐藏
但是,在任务栏自动隐藏后,
窗口本身是Show状态,并非Hide,
实际上只是系统改变了TaskBar的大小而已
所以需要的是某个WM或者是API来
显示“自动隐藏”状态的任务栏
谢谢大家:)

还有就是请问,怎么给帖子加分。
20分太对不起大家的回答了

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧