In my way

On my way

常用链接

统计

最新评论

【转】对话框任务栏隐藏

隐藏这个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

posted on 2009-05-07 11:19 谷主 阅读(733) 评论(1)  编辑 收藏 引用

评论

# re: 【转】对话框任务栏隐藏 2009-10-04 20:01 zxcv

非常感谢你!这个问题困了我很久,今天终于得到解决了!  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理