キーストロークが非システム文字に変換されるときに、フレームワークによってこのメンバー関数が呼び出されます。
afx_msg void OnChar(
UINT nChar,
UINT nRepCnt,
UINT nFlags
);
パラメーター
nChar
キーの文字コードの値が含まれています。nRepCnt
繰り返し回数が含まれています。これは、キーを押し続けている間に発生するキーストロークの回数です。nFlags
以下に示すような、スキャン コード、キー変換コード、直前のキー状態、コンテキスト コードが含まれています。値
説明
0-15
繰り返し回数を指定します。 値は、ユーザーがキーを押した結果、繰り返されたキーストロークの回数を示します。
16-23
スキャン コードを指定します。 この値は、相手先ブランド供給 (OEM: Original Equipment Manufacturer) によって異なります。
24
キーが拡張キー (拡張 101 または 102 キーのキーボード上にある右側の Alt キーや Ctrl キーなど) かどうかを指定します。 拡張キーの場合は 1、それ以外の場合は 0 になります。
25-28
Windows 内部で使用します。
29
コンテキスト コードを指定します。 Alt キーを押した状態でキーを押した場合は 1、それ以外の場合は 0 になります。
30
直前のキー状態を指定します。 メッセージが送られる前にキーが押されていた場合は 1、キーが離されていた場合は 0 になります。
31
変換状態を指定します。 キーが離されている場合は 1、押されている場合は 0 になります。
解説
OnKeyUp メンバー関数が呼び出される前と OnKeyDown メンバー関数が呼び出された後に呼び出されます。 OnChar 関数は、押されたり、離されたりするキーボードのキーの値を保持します。
押されたキーと OnChar 関数の呼び出しが一対一で対応する必要はないので、通常アプリケーションは nFlags の情報を使いません。 nFlags の情報は OnChar 関数を呼び出す前の、OnKeyUp メンバー関数または OnKeyDown メンバー関数の呼び出しでのみ使用されます。
IBM の 101 キーまたは 102 キーの拡張キーボードで拡張されたキーは、キーボードのメイン セクションの右 Alt キーと右 Ctrl キー、テンキーの左にある Ins キー、Del キー、Home キー、End キー、PageUp キー、PageDown キー、方向キー、およびテンキーのスラッシュ (/) キーと Enter キーです。 ほかのキーボードでは、nFlags の拡張キー ビットで拡張キーをサポートすることがあります。
注意
このメンバー関数は、アプリケーションが Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 この関数に渡されるパラメーターの値は、フレームワークがメッセージ受信時に受け取ったパラメーターの値に基づいています。 この関数の基本クラスの実装を呼び出した場合は、関数に渡したパラメーターではなく、メッセージと共に渡されたパラメーター自体が使用されます。
必要条件
**ヘッダー:**afxwin.h