■メッセージとは
Windowsはメッセージを送ってアプリケーションとやり取りをしている
メッセージはそれぞれ一意の整数値で表される
アプリケーションに送られるメッセージのすべてを処理する必要はなくMFCがデフォルトのメッセージハンドラを提供している



■メッセージへの応答 MFC方式

@ メッセージに対応するメッセージマクロをプログラムのメッセージマップに追加する

メッセージ メッセージに対応するメッセージマクロ 備考
WM_CHAR ON_WM_CHAR() キー操作が非システムキャラクタに変換されたときに
ウィンドウにポストされます
WM_PAINT ON_WM_PAINT() 再描画が必要になったとき、Windows がアプリケーションに
送るメッセージ
WM_MOVE ON_WM_MOVE() ウィンドウが移動された直後に送信されます
WM_CLOSE ON_WM_CLOSE() ウィンドウがクローズされようとしているときポストされるメッセージ
WM_LBUTTONUP ON_WM_LBUTTONUP()
WM_LBUTTONDOWN ON_WM_LBUTTONDOWN()
WM_COMMAND ON_COMMAND()
WM_SIZE ON_WM_SIZE()

メッセージマップを追加するには、BEGIN_MESSAGE_MAPとEND_MESSAGE_MAPの間にメッセージマクロを追加する

BEGIN_MESSAGE_MAP(CMainWin, CFrameWnd)
	OM_WM_CHAR()
	ON_WM_LBUTTONDOWN()
END_MESSAGE_MAP()

A メッセージハンドラのプロトタイプを、メッセージを処理するウィンドウクラスへ追加する

// メインウィンドウクラス
class CMainWin : public CFrameWnd
{
public:
        CMainWin();
        afx_msg void OnPaint();
        DECLARE_MESSAGE_MAP()
};

一般的にメッセージハンドラはメッセージ名の前にONをつけたもの
メッセージに応答するならプログラムが定義するウィンドウクラスにメッセージハンドルを追加する
afx_msg型指定子を使ってプロトタイプ宣言する

B メッセージに関連付けられたメッセージハンドラを実装する

メッセージハンドラ実装の条件
 ・処理されるメッセージの性質
 ・メッセージがプログラムに対して持っている意味