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