「Win32/64アプリ開発 003 基礎の理解続き」の版間の差分

提供:yonewiki
 
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_アプリケーション開発に戻る。

前の記事: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_アプリケーション開発に戻る。