2
当你ON_COMMAND使用,做当我们使用ON_MESSAGE。它们之间有什么区别。消息映射宏
当你ON_COMMAND使用,做当我们使用ON_MESSAGE。它们之间有什么区别。消息映射宏
ON_COMMAND
专门用于处理命令消息(即WM_COMMAND
),如点击按钮/菜单项/工具栏按钮。
ON_MESSAGE
是更通用的,可以被用于任何的窗口消息。它通常用于较不频繁处理的消息,而未提供特定的消息映射宏。您可以使用ON_MESSAGE
处理ON_COMMAND
消息以及但是你必须提取消息的信息(即命令ID)自己。
实施例:
在这里看到:
在消息映射:
ON_MESSAGE(WM_COMMAND, OnMyCommand)
处理程序:
LRESULT CMyWnd::OnMyCommand(WPARAM wParam, LPARAM lParam)
{
// ... Handle message here
int commandId = LOWORD(wParam);
switch(commandId){
case ID_HELLOCOMMAND:
MessageBox(0, "Hello there!", "ID_HELLO_COMMAND", MB_OK);
break;
// ... other commands here
}
return 0L;
}
免责声明:由于MFC的消息泵机制,你可能做的比什么上面显示多一点。最好的男人问:Jeff Prosise
你能举一个例子这种“你可以使用ON_MESSAGE处理ON_COMMAND消息以及但是你必须提取消息的信息自己”的解释。 – ckv 2010-08-10 06:31:43
@ckv:我添加了一个例子。 – 2010-08-26 15:44:30