Win32/64アプリ開発 003 基礎の理解続き

提供:yonewiki
2023年10月18日 (水) 23:25時点におけるYo-net (トーク | 投稿記録)による版 (→‎概要)

Win32/64_アプリケーション開発に戻る。

前の記事:Win32/64アプリ開発 002 基礎の理解

次の記事:Win32/64アプリ開発 004

概要

 前の記事の続きです。


<syntaxhighlight lang="cpp"> LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { …省略 } </syntaxhighlihgt>


 LRESULT型の戻り値や関数規約のCALLBACKとかがついてますが、ウィンドウプロシージャ関数の定義です。特殊な関数としてコンパイラが扱ってくれます。CALLBACKは実際は__stdcallというキーワードになっています。LRESULTはLONG_PTR型を意味していて更に、LONG_PTR型はlong long型が元になっています。ようするに64ビットの整数です。そんなに長いビットが必要な返り値ではないですが、このように定義することになっています。


 Windowsから送られてくるメッセージから4つの引数が受け取ることが出来るようになっています。それぞれの引数について確認しておきます。


■WndProc

第1引数: HWND hWnd

 メッセージを受け取ったウィンドウハンドル番号。どのウィンドウに対して送られてきたものなのかがわかります。

第2引数: UINT msg

 送られてきたメッセージの番号。ものすごい数の種類がありますが、受け取る側は、必要なメッセージだけを見つけて処理する感じになります。

第3引数: WPARAM wParam

 送られてきたメッセージによって異なるパラメータです。メッセージによっては、wParamの上位ビットだけで意味を持っていたり、下位ビットだけで意味を持っていたりもします。

第4引数: LPARAM lParam

 こちらも送られてきたメッセージによって異なるパラメータです。メッセージによっては、lParamの上位ビットだけで意味を持っていたり、下位ビットだけで意味を持っていたりもします。


 

前の記事:Win32/64アプリ開発 002 基礎の理解

次の記事:Win32/64アプリ開発 004

Win32/64_アプリケーション開発に戻る。