WM_COMMAND 动态绑定
时间: 2023-07-24 08:17:42 浏览: 75
WM_COMMAND 是Windows消息之一,用于通知窗口一个命令已经被触发。通常情况下,WM_COMMAND消息会被用来处理菜单、工具栏按钮等控件的事件。
在动态绑定WM_COMMAND消息时,一般需要使用到控件的ID号和控件的父窗口句柄。具体步骤如下:
1. 在窗口创建时创建所需控件,并为控件分配一个ID号。
2. 在窗口过程函数中处理WM_COMMAND消息。
3. 在WM_COMMAND消息处理函数中,通过控件ID号判断事件的来源是哪个控件。
4. 根据事件来源执行相应的操作。
代码示例:假设我们有一个名为“Button1”的按钮,我们想在单击该按钮时打印一条消息。
```c++
// 窗口过程函数
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_CREATE:
// 创建Button1按钮
CreateWindow(TEXT("BUTTON"), TEXT("Button1"), WS_VISIBLE | WS_CHILD, 10, 10, 100, 30, hWnd, (HMENU)ID_BUTTON1, NULL, NULL);
break;
case WM_COMMAND:
// 处理Button1按钮的WM_COMMAND消息
if (LOWORD(wParam) == ID_BUTTON1)
{
// 执行相应操作,这里简单地打印一条消息
MessageBox(hWnd, TEXT("Button1 Clicked!"), TEXT("Message"), MB_OK);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
```
在上述示例中,我们在窗口创建时创建了一个ID为ID_BUTTON1的按钮,并在窗口过程函数中处理了该按钮的WM_COMMAND消息。在WM_COMMAND消息处理函数中,我们通过判断LOWORD(wParam)是否等于ID_BUTTON1来确定事件来源是Button1按钮,并在此基础上执行相应的操作。
阅读全文