【发布时间】:2010-12-15 01:49:13
【问题描述】:
I asked a question,还有人评论说我的问题不清楚, 所以这是一个新的。
我正在尝试使用 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
【问题讨论】:
-
再次解释我想要实现的目标 - 我想处理 WM_KEYDOWN 消息两次 - 一次在父窗口中,一次在子窗口中。我实际上并不需要他们成为父子,只是认为这样可以节省我创建两个不同的 wndProcs...
-
您应该只编辑原始帖子,而不是发布新问题。