【发布时间】:2020-07-23 11:02:54
【问题描述】:
我有一个使用 MFC 的 GUI 项目。
小部件(控件)在编译时消息映射表中进行消息处理。
我想在运行时有条件地向表单添加控件,但我不知道如何在运行时将消息处理程序附加到消息映射。
如何在运行时将消息处理程序添加到 MFC 消息映射?
我应该使用其他流程吗?
有关消息映射的信息,请参阅MFC Message Maps documentation。
环境:
Windows 7 或 Windows 10(该应用程序适用于两种操作系统)
视觉工作室 2017
【问题讨论】:
-
是的,我知道还有其他 GUI 框架,但我没有时间将 GUI 切换到另一个框架,例如 wxWidgets。
-
我还没有尝试过,但是您可以使用您想要更改的消息映射从您的类派生另一个类,覆盖未记录的
virtual const AFX_MSGMAP* GetMessageMap() const;函数,并返回一个指向您可以构建的消息映射。 -
@1201ProgramAlarm 我之前遇到的另一个障碍是如何为自定义(继承)控件定义消息映射。还没找到例子。
-
您可以(也许)设置您的自定义控件以发布
WM_NOTIFY消息,这可以处理大量不同的事情,具体取决于您如何自定义关联的NMHDR结构。
标签: c++ visual-studio-2017 mfc message-map