「Win32/64アプリ開発 003 基礎の理解続き」の版間の差分
(ページの作成:「Win32/64_アプリケーション開発に戻る。 前の記事:Win32/64アプリ開発 002 基礎の理解 次の記事:Win32/64アプリ開発 004 == '''概要''' == 前の記事:Win32/64アプリ開発 002 基礎の理解 次の記事:Win32/64アプリ開発 004 Win32/64_アプリケーション開発に戻る。」) |
(→概要) |
||
6行目: | 6行目: | ||
== '''概要''' == | == '''概要''' == | ||
前の記事の続きです。 | |||
<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つの引数が受け取ることが出来るようになっています。それぞれの引数について確認しておきます。 | |||
'''<span style="color:darkred;">■WndProc</span>''' | |||
'''第1引数:''' HWND hWnd | |||
メッセージを受け取ったウィンドウハンドル番号。どのウィンドウに対して送られてきたものなのかがわかります。 | |||
'''第2引数:''' UINT msg | |||
送られてきたメッセージの番号。ものすごい数の種類がありますが、受け取る側は、必要なメッセージだけを見つけて処理する感じになります。 | |||
'''第3引数:''' WPARAM wParam | |||
送られてきたメッセージによって異なるパラメータです。メッセージによっては、wParamの上位ビットだけで意味を持っていたり、下位ビットだけで意味を持っていたりもします。 | |||
'''第4引数:''' LPARAM lParam | |||
こちらも送られてきたメッセージによって異なるパラメータです。メッセージによっては、lParamの上位ビットだけで意味を持っていたり、下位ビットだけで意味を持っていたりもします。 | |||
2023年10月18日 (水) 23:22時点における版
次の記事: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