質問をしたところ、質問がはっきりしないとのコメントがありましたので、こちらが新しい質問です。
WIN32APIを使用して複数のウィンドウでアプリケーションを作成しようとしています。2つのウィンドウを作成しました。1つは親の子です。次に、メッセージループが発生しますが、残念ながら、親のWndProcのみがメッセージを受け取り、子は受け取りません。-つまり、wndProcは2回ではなく1回だけ呼び出されます。(それは期待される動作ですか?)
また、子ウィンドウ用に別の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メッセージを2回処理します。1回は親ウィンドウで、もう1回は子ウィンドウで処理します。私は実際にはそれらが親子である必要はありません。2つの異なるwndProcsを作成する手間が省けると思っただけです。