「Win32/64アプリ開発 003 基礎の理解続き」の版間の差分
(→概要) |
(→概要) |
||
14行目: | 14行目: | ||
…省略 | …省略 | ||
} | } | ||
</ | </syntaxhighlight> | ||
2023年10月18日 (水) 23:25時点における版
次の記事:Win32/64アプリ開発 004
概要
前の記事の続きです。
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
…省略
}
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アプリ開発 004