注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

mie

 
 
 

日志

 
 

VC 2010 + MFC:CMFCPopupMenu弹出菜单无法销毁的BUG  

2010-12-27 16:53:56|  分类: Windows系统BUG搜 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

重现方法:在MDI视图窗口,快速右击,频繁弹出菜单;然后快速关闭应用程序。此时,应用程序的框架Frame关闭,而菜单滞后销毁,由于菜单关联了Frame,Frame已经销毁,此时导致应用程序崩溃。

 

Windows窗口中,对于模态窗口或者菜单窗口,采用的是频繁发送WM_IDLE之类的消息,使得窗口处于无法响应鼠标点击的状态。虽然如此,但是,当应用程序退出时,windows并不帮助我们检查是否存在模态子窗口或者菜单,这可能导致应用程序出现一些意料之外的特殊情况。

一个很常见的BUG,也是很多软件都普遍存在的问题。应用程序有个托盘图标,当应用程序弹出了模态对话框时,通过托盘图标的菜单退出应用程序,此时,模态对话框依然存在,并没有销毁,这将导致应用程序不能正常退出。

由于菜单是一种很特殊的窗口,当窗口失去焦点时,菜单即销毁,所以,一般情况下不会出问题。但是,这里函数出现了问题。暂时只能采用手工处理的方法,自己销毁。

 

By:zhanyonhu

  评论这张
 
阅读(1312)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016