WEB开发网
开发学院软件开发VC 如何隐藏显示在任务栏中的对话框程序 阅读

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

 2010-06-29 20:42:32 来源:WEB开发网   
核心提示:以上是主要的源代码清单,下面对关键部分作一说明:在常规的 MFC 应用中,如何隐藏显示在任务栏中的对话框程序(2),CMyApp::CInitInstance 的作用是加载框架窗口,但这里创建的窗口时不可见的,这说明 WS_EX_TOOLWINDOW对隐不隐藏对话框没用太大关系,这方面谁有更好的经验,创建了主框架之后,

以上是主要的源代码清单,下面对关键部分作一说明:

在常规的 MFC 应用中,CMyApp::CInitInstance 的作用是加载框架窗口,但这里创建的窗口时不可见的。创建了主框架之后,我用它作为对话框的父窗口,即便它是不可见的,也应该在资源文件中给它一个菜单,否则 MFC 会很不爽。

CMainFrame::PreCreateWindow 是在创建窗口之前由框架调用的函数,因此可以在这里设置窗口的扩展属性 WS_EX_TOOLWINDOW,这样就将它丛任务栏隐藏了,因为框架是不可见的,所以不用关心标题栏的大小问题。

此外,对话框的扩展式样必须关闭。可以设置这个扩展式样看看效果:

ModifyStyleEx(0,WS_EX_APPWINDOW);

如果在代码中加上这行,那么对话框无法隐藏。这一点是一般想不到的诀窍,在默认的情况下,VC++ 的 IDE 在工程资源文件中会有这样一行式样描述:

EXSTYLE WS_EX_APPWINDOW

直接编辑.rc文件删除这行。

从理论上讲,之所以要创建隐藏的父窗口(WS_EX_TOOLWINDOW),是因为必须让对话框具备常规标题的缘故;如果你愿意要小标题,完全可以不设置 WS_EX_TOOLWINDOW,但 WS_ EX_APPWINDOW 一定要关闭。我试了一下没问题。这说明 WS_EX_TOOLWINDOW对隐不隐藏对话框没用太大关系。这方面谁有更好的经验,欢迎来信交流。

最后祝大家身体健康!

本文配套源码

上一页  1 2 

Tags:如何 隐藏 显示

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接