BEGIN_MESSAGE_MAP(CMenusDynamicView, CView)
//{{AFX_MSG_MAP(CMenusDynamicView)
ON_COMMAND(ID_OPTIONS_EXTRACOLORS, OnOptionsExtracolors)
ON_COMMAND(ID_OPTIONS_STANDARDCOLORS, OnOptionsStandardcolors)
ON_COMMAND_RANGE(ID_COLORS_BLACK, ID_COLORS_BLUE, OnColors)
ON_COMMAND_RANGE(ID_COLORS_CYAN, ID_COLORS_YELLOW, OnColors)
ON_UPDATE_COMMAND_UI_RANGE(ID_COLORS_BLACK, ID_COLORS_BLUE, OnUpdateColors)
ON_UPDATE_COMMAND_UI_RANGE(ID_COLORS_CYAN, ID_COLORS_YELLOW, OnUpdateColors)
ON_UPDATE_COMMAND_UI(ID_OPTIONS_EXTRACOLORS, OnUpdateOptions)
ON_UPDATE_COMMAND_UI(ID_OPTIONS_STANDARDCOLORS, OnUpdateOptions)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()其中的OnOptionsExtracolors OnOptionsStandardcolors OnColors
OnUpdateColors OnUpdateOptions都在什么时候调用它,能给我详细的讲解一下吗?
//{{AFX_MSG_MAP(CMenusDynamicView)
ON_COMMAND(ID_OPTIONS_EXTRACOLORS, OnOptionsExtracolors)
ON_COMMAND(ID_OPTIONS_STANDARDCOLORS, OnOptionsStandardcolors)
ON_COMMAND_RANGE(ID_COLORS_BLACK, ID_COLORS_BLUE, OnColors)
ON_COMMAND_RANGE(ID_COLORS_CYAN, ID_COLORS_YELLOW, OnColors)
ON_UPDATE_COMMAND_UI_RANGE(ID_COLORS_BLACK, ID_COLORS_BLUE, OnUpdateColors)
ON_UPDATE_COMMAND_UI_RANGE(ID_COLORS_CYAN, ID_COLORS_YELLOW, OnUpdateColors)
ON_UPDATE_COMMAND_UI(ID_OPTIONS_EXTRACOLORS, OnUpdateOptions)
ON_UPDATE_COMMAND_UI(ID_OPTIONS_STANDARDCOLORS, OnUpdateOptions)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()其中的OnOptionsExtracolors OnOptionsStandardcolors OnColors
OnUpdateColors OnUpdateOptions都在什么时候调用它,能给我详细的讲解一下吗?
ON_COMMAND(ID_OPTIONS_EXTRACOLORS, OnOptionsExtracolors)
表示将点击 ID为 ID_OPTIONS_EXTRACOLORS的按钮的事件映射到 OnOptionsExtracolors中下同
ON_COMMAND(ID_OPTIONS_STANDARDCOLORS, OnOptionsStandardcolors)群映射
ON_COMMAND_RANGE(ID_COLORS_BLACK, ID_COLORS_BLUE, OnColors)
将 ID号 从 ID_COLOS_BLACK到 ID_COLORS_BLUE的所有按钮的事件都映射到 OnColors中ON_UPDATE_COMMAND_UI
更新命令
#define ID_COLORS_BLACK 0x10
#define ID_COLORS_BLUE 0x20
那么 OnColors 可以响应 0x10~0x20 之间所有的命令ON_UPDATE_COMMAND_UI 和 ON_UPDATE_COMMAND_UI_RANGE 的作用是让用户来选择处理菜单 item 的状态,每当显示菜单时,都会对每个item调用该宏映射的函数,一般的作用是用来 enable item 或者 disable item,它们的区别同上面的一样,一个只能处理一个 item,另一个可以处理一组 item