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

迷茫的Bigboys

迷茫的Bigboys

2016-01-29 11:56

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

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


作者:1.5kg

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/cyuyanjiaocheng/)

下载源代码

介绍
  在 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
展开更多 50%)
分享

猜你喜欢

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

C语言教程 C语言函数
也谈如何隐藏显示在任务栏中的对话框程序

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

C语言教程 C语言函数
如何隐藏显示在任务栏中的对话框程序

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

在对话框程序中插入DialogBar

C语言教程 C语言函数
在对话框程序中插入DialogBar

将非模态对话框显示为模态对话框

电脑网络
将非模态对话框显示为模态对话框

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

在对话框中动态显示位图

编程语言 网络编程
在对话框中动态显示位图

Win10怎么将QQ从通知栏显示在任务栏?

电脑入门
Win10怎么将QQ从通知栏显示在任务栏?

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

《去吧皮卡丘》开局获取奖励装备技巧分享

《去吧皮卡丘》开局获取奖励装备技巧分享

XHTML 1.0

XHTML 1.0
下拉加载更多内容 ↓