vc++深入详解第六章

        没有做详细的总结,因为我觉得很多时候只要跟着敲代码就可以了,并没有太多需要注意的地方,只列出几个点。

  1.菜单命令消息路由:框架类(不响应)--视类(根据消息映射机制判断是否相应,否交给文档类)--文档类(根据消息映射机制判断是否相应,否交给文档类)--视类(直接交还框架类)--框架类(根据消息映射机制判断是否相应,否交给应用程序类)--应用程序类


  2.再动态添加菜单是,需要创建一个CMenu类的变量用于创建菜单,当其不定义为CMainFrame类的成员变量时,因为这个变量是局部变量,当它的生命周期结束后,系统会销毁这个变量,这是不合理的。可以再创建好菜单后调用CMenu类的成员函数Detach()来将菜单句柄与菜单分离,这样当这个局部菜单对象生命周期结束时,就不会去销毁一个它不具有拥有权的菜单。


  3.vs2010中,在CMainFrame::OnCreate()函数中调用GetMenu()无法得到菜单指针。上网查了很久,只在在msdn论坛上看到如此的解决方法:VS2010建的SDI/MDI与之前的不一样,是类似BCG的一些东西,所以用之前的方法GetMenu()得到CMenu是NULL或者无效。您可以在CMainFrame类中找到CMFCMenuBar m_wndMenuBar;这个成员变量,如果您将跟它相关的代码注释掉的话,然后再试试GetMenu()函数看看。
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值