【发布时间】:2019-08-05 09:44:33
【问题描述】:
如果 BEGIN_MESSAGE_MAP/END MESSAGE 对之间没有要处理的事件,我可以安全地删除它们吗?
-
我本来可以的
类 MyListView : 公共 ListView
类 MySpecialisedListView : public MyListView
并且 MySpecialisedListView 有要处理的事件,但 MyListView 没有。 我能否删除 MyListView 的 BEGIN_MESSAGE_MAP/END MESSAGE 对,并确保 MySpecialisedListView 中未处理的任何事件仍将由 ListView 事件处理程序提供服务,尽管中间的继承类没有事件处理程序?
Microsoft 的 MSDN 和 MFC 文档没有涵盖这一点。
谢谢
【问题讨论】:
-
为什么要这样做?
-
因为它使代码更小。它的原则是,如果该类不需要某些东西,则不要添加它(但前提是它是安全和正确的)
-
在我的情况下,BEGIN_MESSAGE_MAP/END MESSAGE 之一(为空)用于 AboutDlg,当我在创建新项目时取消选中它时,它在代码中不存在