ON_COMMAND_RANGE和ON_UPDATE_COMMAND_UI_RANGE

ON_COMMAND_RANGE ON_UPDATE_COMMAND_UI_RANGE 可以影射ID连续的Toolbar/Menu ID。

ON_COMMAND_RANGE影射的消息响应函数需要一个参数UINT表明是哪一个消息,

afx_msg void OnZoom(UINT nID);


而ON_UPDATE_COMMAND_UI_RANGE的消息响应函数则无此ID,与ON_UPDATE_COMMAND_UI的消息响应函数原型相同。

afx_msg void OnUpdateZoom(CCmdUI* pCmdUI);

原因是CCmdUI有一个数据成员m_nID标示ID。

注:所有的这些影射要放在{{AFX_MSG_MAP之外!


刚开始使用还真不习惯,为何同是XXX_RANGE,确不按相同的规则办事,并且即使写成:

afx_msg void OnUpdateZoom(UNIT nID, CCmdUI* pCmdUI);

编译器却一点错误信息也没有。

怪异!

原文地址:https://www.cnblogs.com/aiwz/p/6333151.html