也谈如何隐藏显示在任务栏中的对话框程序

介绍

在 VCKBASE Online Journal 第21期中,NorthTibet 写了“如何隐藏显示在任务栏中的对话框程序”一文,颇为巧妙,而且非常好用,唯一不爽的是有点麻烦。踩在他的肩膀上,我找到了一个比较简单的方法。

实现

隐藏这个Main Dialog的思路就是把这个Dialog看成一个子窗口,然后再把WS_EX_APPWINDOW属性去掉。

WS_EX_APPWINDOW不大常用,MSDN的解释是:

Forces a top-level window onto the taskbar when the window is visible.

把顶层的并且可见的窗口放到任务栏上,移除 WS_EX_APPWINDOW 很容易:

ModifyStyleEx(WS_EX_APPWINDOW, 0);

就可以了。

那么什么办法能够最简单的实现创建一个父窗口呢?CFrameWnd 就有点笨了,干脆就用自己好了。在

BOOL CHideApp::InitInstance()中:

CHideDlg dlgParent;
  dlgParent.Create(IDD_HIDE_DIALOG);
  dlgParent.ShowWindow(SW_HIDE);
  //dlgParent.ShowWindow(SW_SHOW);
  CHideDlg dlg(&dlgParent);

  m_pMainWnd = &dlg;
  int nResponse = dlg.DoModal();

  dlgParent.DestroyWindow();

在BOOL CHideDlg::OnInitDialog()中:

this->ModifyStyleEx(WS_EX_APPWINDOW, 0);

只短短几行,就实现了对话框在任务栏的隐藏。

结束语

如果使用 CDialog 的话,ALT+TAB 图标就不对了:) 之前我也试过用 CWnd,可恨的是它还要去注册窗口类,相比之下还是CHideDlg 最经济,你说呢?祝大家身体健康,每天都有新发现!

E-Mail : webmaster@sanjin.51.net QQ : 923452

本文配套源码

时间: 2024-11-01 03:36:33

也谈如何隐藏显示在任务栏中的对话框程序的相关文章

如何隐藏显示在任务栏中的对话框程序

最近有个朋友做了一个基于对话框的小程序,大家知道,一般具有用户界面的 Windows 程序运行起来后,通常都会在任务栏里体现出来.我的这个朋友不想让她做的对话框程序运行的时候显示在任务栏里.问我如何隐藏?我参考了 MSDN 后告诉她说使用 WS_EX_TOOLWINDOW 扩展窗口式样.她按照我说的方法试了一下,结果没有成功.后来我琢磨了半天,发现这件事情并不像文档中说的那么简单. MSDN 里对 WS_EX_APPWINDOW 的描述是这样的: 用 WS_EX_TOOLWINDOW 可以创建一

在gridview通过CheckBox隐藏/显示 列后,表中刚刚填入的数据奇怪消失.

问题描述 大家好,在gridview通过CheckBox隐藏/显示列后,在表中其他列刚刚填入的数据奇怪消失.代码如下:protectedvoidCheckBox1_CheckedChanged(objectsender,EventArgse){GridView1.Columns[6].Visible=!GridView1.Columns[6].Visible;}请问为什么? 解决方案 解决方案二:可能是你的CheckedChanged事件是提交到服务器端的,导致了gridview需要重新绑定最好

Win7怎样显示快速启动栏?

  1.在任务栏上右键-->工具栏-->新建工具栏. 2.在文件夹里面输入这个路径,然后按回车. 3.在任务栏上空白处右键,把锁定任务栏的勾去掉.然后在Quick Launch的位置右键,把显示文本和显示标题的勾全部去掉. 4.现在任务栏已经解锁.我们可以自由的拖动上面的东西.要稍微用点儿劲儿,需要乾坤大挪移一下.把快速启动栏往左拖到不能再拖的位置.然后把任务栏往右拖,快速启动栏自动就到了最左边. 5.现在原先的任务栏中还有不少程序.你可以一一将它们去掉.右键点程序图标,选将此程序从任务栏解锁

电脑如何设置将蓝牙图标显示在任务栏

  方法一: 1.按Win+R键,打开运行,输入ncpa.cpl,回车,打开网络连接; 2.右击蓝牙设备,选择"属性"; 3.在打开的属性窗口中,切换至"Bluetooth"项,点击下面的"Bluetooth设置"; 4.勾选"在通知区域显示Bluetooth图标",点击确定,这样蓝牙图标就会显示在任务栏中了. 方法二: 1.在开始菜单中输入Bluetooth,点击搜索结果中的"更改Bluetooth设置"

显示-Android平板隐藏状态栏和导航栏后剩下一片黑色

问题描述 Android平板隐藏状态栏和导航栏后剩下一片黑色 Android4.2系统平板隐藏状态栏和导航栏后剩下一片黑色,这个布局是什么,不是想去掉,如果去掉可以设置0dip或者0dip,我想得到那个黑色的布局,去控制他显示隐藏 解决方案 我好像没有C币,所以拜托大家了 解决方案二: 没看懂问题到底想表达什么!

C#使用Windows API 隐藏/显示 任务栏 (FindWindowEx, ShowWindow)

原文 C#使用Windows API 隐藏/显示 任务栏 (FindWindowEx, ShowWindow) 今天,有网友询问,如何显示和隐藏任务栏? 我这里,发布一下使用Windows API 显示和隐藏 Windows 的任务栏的方法,windows 的任务栏,其实是一个窗口(window),只要找到这个窗口的句柄,显示和隐藏就轻而易举了,任务栏是个没有标题的窗口,但它的类名是 Shell_TrayWnd,所以,可以用FindWindow 或 FindWindowEx 去查找它的句柄,而显

SystemUI中状态栏跟导航栏隐藏显示控制方法及效果示例

SystemUI中状态栏跟导航栏隐藏显示控制方法及效果示例            SystemUI在android4.2SDK上,对于phone版本,包含了状态栏statusbar,也有导航栏navigationbar,对于有些手机来说可能导航栏是在触摸屏上的,当然这一个部分是可以不需要的.下面我们就一起来看看systemUI可见性的几种选择以及带来的实际效果对比. /****************************************************************

win7系统怎么隐藏或还原任务栏

  win7系统怎么隐藏或还原任务栏 1.在电脑的任务栏上点击鼠标右键 2.在出现的快捷菜单里选择"属性"菜单命令 3.在弹出的"任务栏和开始菜单属性"对话框里选择"任务栏"项 4.勾选"自动隐藏任务栏"复选框,可以将任务栏隐藏起来,当鼠标移动到任务栏原来的位置时即可显示任务栏,点击"应用""确定"按钮即可 5.同样取消"自动隐藏任务栏"复选框前面的对勾,再点击&qu

Windows 10如何隐藏Windows Defender任务栏图标

Windows 10 至发布以来就内置集成了 Windows Defender 安全防护应用,但有许多用户平常压根儿就没注意到它的存在.微软为了使安全防护功能更加明显,Windows 10 周年更新中将 Windows Defender 图标列到了任务栏通知区域,以方便用户使用. 禁用任务栏图标并不会影响到 Windows Defender 的正常工作,它仍会在后台对系统进行安全防护,你可以正常通过「设置」-「更新和安全」-「Windows Defender」或在「开始」菜单中搜索 Window