Loading article…
Win32アプリケーションプログラミングにおいて、 WindowProc(またはウィンドウプロシージャ)、別名WndProcは、ウィンドウに送信されたメッセージを処理するユーザー定義のコールバック関数です。この関数は、アプリケーションがウィンドウクラスを登録する際に指定され、任意の名前を付けることができます(必ずしもWindowProcである必要はありません)。
ウィンドウプロシージャは、ウィンドウに送信されるすべてのメッセージを処理する役割を担います。WindowProcの関数プロトタイプは次のとおりです。
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
hwndはメッセージが送信されたウィンドウへのハンドルであり、winuser.huMsgで指定されている識別子によって実際のメッセージを識別します。
wParamこれらは、lParamメッセージによって意味が変わるパラメータです。アプリケーションはメッセージを識別し、必要なアクションを実行する必要があります。
システム内で発生する様々なイベントの結果として、数百種類もの異なるメッセージが生成されますが、通常、アプリケーションが処理するのはこれらのメッセージのごく一部に過ぎません。すべてのメッセージが確実に処理されるようにするため、Windows はDefWindowProcという既定のウィンドウプロシージャを提供しており、アプリケーション自体が処理しないメッセージに対して既定の処理を実行します。
アプリケーションは通常、自身のWindowProc関数の最後にDefWindowProcを呼び出し、未処理のメッセージをデフォルトのプロシージャに渡せるようにします。