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