自行添加vc++消息映射,一定要放在 BEGIN_MESSAGE_MAP 和END_MESSAGE_MAP() 之间吗?

来源:百度知道 编辑:UC知道 时间:2024/07/07 22:37:54
我自己调试了一下,发现如下消息映射
ON_COMMAND(ID_FONT_DROPDOWN, DoNothing)

无论是否放在BEGIN_MESSAGE_MAP 和END_MESSAGE_MAP() 之间,均没有影响。

区别是,
放在中间,语句自动转为为灰色。
放在后面,语句为正常黑色。

请教,是否有什么用法或深层次的区别吗?

谢谢。

(1)放在中间

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) //{{AFX_MSG_MAP(CMainFrame)

ON_WM_CREATE()

//}}AFX_MSG_MAP

ON_COMMAND(ID_FONT_DROPDOWN, DoNothing)

END_MESSAGE_MAP()

(2)放在后面

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) //{{AFX_MSG_MAP(CMainFrame)

ON_WM_CREATE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

ON_COMMAND(ID_FONT_DROPDOWN, DoNothing)

这是两个宏,里面展开是有东西的,不是没有影响,放在中间的是通过由MFC去管理的,不放在中间的话MFC不对其进行管理,你可以去看看BEGIN_MESSAGE_MAP 和END_MESSAGE_MAP() 这两个宏的具体实现

那个放中间是为了方便classwizzard管理吧