I asked a question이되고, 어떤 사람들은 내 질문이 명확하지 않은 것으로 의견을 말했습니다. 그래서 여기에 새로운 것이 있습니다.CreateWindow() [Win32 API] : 부모 창만이
WIN32 API를 사용하여 여러 개의 창으로 응용 프로그램을 만들려고합니다. 두 개의 창을 만들었습니다. 하나는 부모의 자식입니다. 그런 다음 메시지 루프가 있습니다. 불행히도 부모 WndProc 만 메시지를 가져 오지만 자식은 그렇지 않습니다. - 은 wndProc가 두 번이 아니라 한 번만 호출됩니다. (예상되는 동작입니까?)
또한 자식 창에 대해 다른 WndProcChild 함수를 만들고 자체 클래스를 등록하려고했지만 여전히 유용하지 않습니다. 다음은
는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);
}
댄
코드 추출물 (자식 윈도우의 선언, 메시지 루프)
내가 그렇게 감사합니다 ... 부드럽게,는 Win32의 안돼서입니다
그냥 달성하기를 원하는 것을 다시 설명하기 위해 - 나는 WM_KEYDOWN 메시지를 두 번 처리하려고합니다. 한 번은 부모 창에서, 한 번은 자식 창에서 처리합니다. 실제로 부모 - 자식이 될 필요는 없습니다. 두 개의 다른 wndProcs를 만들면 저를 구할 수 있다고 생각했습니다.
그냥 달성하고자하는 것을 다시 설명하기 위해 - 나는 WM_KEYDOWN 메시지를 두 번 처리하려고합니다. 한 번 부모 창과 한 번 자식 창에서. 실제로 부모 - 자식이 될 필요가 없습니다. 단지 두 개의 다른 wndProcs를 만드는 데 도움이 될 것이라고 생각했습니다. – dan
새로운 질문을 게시하는 대신 방금 원래 게시물을 편집해야합니다. – Aaron