Я задал вопрос , и некоторые люди отметили, что мой вопрос не ясен,
Итак, вот новый.
Я пытаюсь создать приложение с несколькими окнами, используя 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