ON_COMMAND
专门用于处理命令消息(即
WM_COMMAND
)就像点击一个按钮/菜单项/工具栏按钮。
ON_MESSAGE
更通用,可用于任何Windows消息。它通常用于未提供特定消息映射宏的处理频率较低的消息。你可以使用
ON消息
处理
Onl命令
消息也是如此,但您必须自己提取消息信息(即命令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