MFC 子对话框多了任务栏图标?

来源:互联网 发布:淘宝开店协议 编辑:程序博客网 时间:2024/06/02 13:30

      在编写对话框程序时,增加了个子对话框,想使用主对话框的界面直接拿来修改,于是直接复在左边的资源管视图(ResourceView)里面直接按Ctrl键拖拉复制了一个,更改对话框标题、ID,一切顺利。

      但是运行的时候问题出现了!其它的子对话框弹出时任务栏上是一个图标,当复制的子对话框弹出时任务栏上多了一个图标!!!抓狂 

      查看对话框的属性,跟其它的对话框也没有区别!更改对话框的Styles里面的Style、Border属性,More Styles里面的Visible属性都没有变化。没办法G之,在《MFC中子对话框没有显示如何让它在任务栏上显示》一文中倒是提到了让子对话框显示的方法是在OnInitDialog函数中加入以下两句:

ModifyStyleEx(0,WS_EX_APPWINDOW);ShowWindow(SW_SHOW);
但我是要取消其在任务栏中的显示!实在没办法了,打开*.rc文件查看在任务栏中显示与不显示对话框的内容,终于在有问题的对话框代码段里面发现了一行可疑的代码EXSTYLE WS_EX_APPWINDOW,而除了主对话框之外,其它的对话框都没有,将此行代码删除,再按F5运行,问题解决了。

一切真相大白:原来在对话框里面有扩展属性WS_EX_APPWINDOW是在属性页里面看不到的,而引文中提到的修改窗体属性正是给需要在任务栏中显示的窗口在运行时加入此属性。其实最简单的办法就是在对话框代码第三行加入上面一行就可以了。

代码如下所示。

IDD_XXX_DIALOG DIALOGEX 0, 0, 320, 200STYLE WS_POPUP | WS_CAPTION | WS_SYSMENUEXSTYLE WS_EX_APPWINDOW //如果不需要在任务栏里面显示,则注释掉此行,反之则加入FONT 9, "宋体"BEGIN      ...END



原创粉丝点击