「Win32/64アプリ開発 003 基礎の理解続き」の版間の差分
(→概要) |
(→概要) |
||
7行目: | 7行目: | ||
== '''概要''' == | == '''概要''' == | ||
前の記事の続きです。 | 前の記事の続きです。 | ||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
20行目: | 21行目: | ||
Windowsから送られてくるメッセージから4つの引数が受け取ることが出来るようになっています。それぞれの引数について確認しておきます。 | Windowsから送られてくるメッセージから4つの引数が受け取ることが出来るようになっています。それぞれの引数について確認しておきます。 | ||
'''<span style="color:darkred;">■WndProc</span>''' | '''<span style="color:darkred;">■WndProc</span>''' |
2023年10月18日 (水) 23:25時点における版
次の記事: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アプリ開発 004