私はオープン ソース プロジェクトのコードをいくつか調べていますが、Win32 アプリを扱うのはこれが初めてです (主にコンソール関連の操作を行いました)。コード内のいくつかの関数は LRESULT CALLBACK を返すため、Windows プロシージャであることがわかります。
DispatchMessage が適切な WndProc を呼び出すか、または DispatchMessage が適切な WndProc をすべて独自に決定できるようにコーディングされていることを確認するために、プログラマーがしなければならないことはありますか?
編集:
DispatchMessage(const MSG*) がアプリケーション内の異なる WndProc を選択する方法は、渡された MSG オブジェクトのウィンドウ ハンドル メンバ (HWND) に基づいていると推測しています。たとえば、メッセージがアプリケーションの編集ウィンドウ用であった場合 (メイン ウィンドウ用ではありません)、DispatchMessage は、編集ウィンドウがオブジェクトである特定のクラスの WndProc メンバー関数を選択します。メッセージがメイン ウィンドウの場合、メイン ウィンドウがオブジェクトであるクラスの WndProc メンバー関数が選択されます (私にとって、このクラスは Notepad_plus_Window クラスになります)。ただし、これは単なる考えです。私はそれを裏付けるものがあまり見つからなかったので、誰かがこれを確認できたらうれしいです.