在以下情况下发送到窗口过程:
用户从菜单中选择一个项目
控件向其父窗口发送通知
加速器按键翻译
讯息来源 | HIWORD(wp) | LOWORD(wp) | lp |
---|---|---|---|
菜单 | 0 | 菜单ID(IDM_ *) | 0 |
加速器 | 1 | 加速ID(IDM_ *) | 0 |
控制 | 通知码 | 控制编号 | 控制窗口的HWND |
例如,在记事本中,当用户单击“文件->打开”时,将显示一个对话框,允许用户打开文件。菜单项在窗口过程的WM_CREATE消息中进行如下处理:
LRESULT CALLBACK winproc(HWND hwnd, UINT wm, WPARAM wp, LPARAM lp) { switch (wm) { case WM_COMMAND: switch (LOWORD(wp) { case ID_FILE_OPEN: /* show file open dialog */ break; case ID_FILE_NEW: /* create new instance */ break; } return 0; } return DefWindowProc(hwnd, wm, wp, lp); }