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

3 篇文章 0 订阅
1 篇文章 0 订阅

      在编写对话框程序时,增加了个子对话框,想使用主对话框的界面直接拿来修改,于是直接复在左边的资源管视图(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, 200
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW //如果不需要在任务栏里面显示,则注释掉此行,反之则加入
FONT 9, "宋体"
BEGIN
      ...
END



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值