ビューを経由したユーザー入力の解釈
ビューの他のメンバー関数は、すべてのユーザー入力を処理して、解釈します。 通常、次の処理を行うビュー クラスでメッセージ ハンドラー メンバー関数を定義します。
これらのメッセージ ハンドラー メンバー関数は、クリップボード間でのデータの移動など、次のアクションをデータの入力、選択、または編集として解釈します。
マウスの移動とクリック、ドラッグ、ダブルクリック
キーストローク
メニュー コマンド
ビューが処理する Windows メッセージは、アプリケーションのニーズによって異なります。
メッセージ処理とマッピングに関するトピックでは、メニュー項目や他のユーザー インターフェイス オブジェクトをコマンドに割り当てる方法と、コマンドをハンドラー関数にバインドする方法について説明します。 また、メッセージ処理とマッピングに関するトピックでは、MFC がコマンドをルーティングし、そのハンドラーを含むオブジェクトに標準 Windows メッセージを送信する方法も説明します。
たとえば、アプリケーションでビューに直接マウス描画を実装する必要が生じる場合があります。 Scribble サンプルでは、WM_LBUTTONDOWN、WM_MOUSEMOVE、および WM_LBUTTONUP の各メッセージを処理して、線セグメントの描画を開始、続行、終了する方法を示します。 一方、ビュー内のマウス クリックを選択として解釈する必要がある場合があります。 ビューのハンドラー関数 OnLButtonDown
は、ユーザーが描画と選択のどちらを行ったかを判別します。 選択した場合、ハンドラーは、そのクリックがビュー内の一部のオブジェクトの境界内にあるかどうかを判別し、境界内にある場合、選択されているようにオブジェクトが示されるように表示を変更します。
ビューでは、クリップボードを使用して選択したデータの切り取り、コピー、貼り付け、または削除を行うための [編集] メニューのコマンドなど、特定のメニュー コマンドも処理できます。 このようなハンドラーは、CWnd
クラスのクリップボード関連のメンバー関数の一部を呼び出して、選択したデータ項目をクリップボードに転送したり、クリップボードから転送したりします。