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