我问了一个问题,有人评论说我的问题不清楚,所以这里是一个新问题。
我正在尝试使用 WIN32 API 创建具有多个窗口的应用程序。我创建了两个窗口,一个是父级的子级。然后我有一个消息循环,但不幸的是只有父 WndProc 收到消息,而孩子没有。- 那就是 wndProc 只被调用一次而不是两次。(这是预期的行为吗?)
我还尝试为子窗口创建另一个 WndProcChild 函数,并注册它自己的类,但仍然无济于事。
下面是一段代码摘录(只有子窗口的声明和消息循环)
我是 Win32 新手,所以要温柔...谢谢,丹
wcEdit.lpfnWndProc = WndProcChild;
wcEdit.style = CS_HREDRAW | CS_VREDRAW;
wcEdit.cbClsExtra = 0;
wcEdit.cbWndExtra = 0;
wcEdit.hInstance = hInstance;;
wcEdit.hCursor = 0;
wcEdit.lpszMenuName = 0;
wcEdit.lpszClassName = L"child";
RegisterClass(&wcEdit);
edit_hwnd = CreateWindow(L"child", L"child_title", NULL,
0, 0, 0, 0, ParentWindow,
NULL, global_instance, NULL);
UpdateWindow(edit_hwnd);
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
只是为了再次解释我想要实现的目标 - 我想处理 WM_KEYDOWN 消息两次 - 一次在父窗口中,一次在子窗口中。我实际上不需要他们成为父子,只是认为这样可以节省我创建两个不同的 wndProcs