PreTranslateMessageの利用

PreTranslateMessage()関数という物があります。
この関数は、メッセージマップを利用することで利用できます。
どのような関数というと、コントロールに渡る前のメッセージを取得できます。
この関数を利用することで、通常、現在利用いているコントロールでは取得できない メッセージを処理することが可能です。
だたし、取得できるメッセージはSendMessageで渡されたメッセージのみで、PostMessageされたものは 取得できないようです

PreTranslateMessage()関数
BOOL PreTranslateMessage(MSG *pMsg)
引数説明
pMsg 処理するメッセージを含む MSG 構造体へのポインタ

この関数の引数にpMsgがあります。これはMSG構造体へのポインタです
このポインタには、送信先のウィンドウハンドルや、送られるメッセージ等の情報が格納されています

MSG構造体
typedef struct tagMSG {
    HWND   hwnd;
    UINT   message;
    WPARAM wParam;
    LPARAM lParam;
    DWORD  time;
    POINT  pt;
} MSG;
変数説明
hwnd メッセージを受け取るウィンドウのハンドル
message メッセージ番号を示します。(WM_LBUTTONDOWN等)
wParam メッセージの付加情報を示します。
lParam メッセージの付加情報を示します。
time メッセージがポストされた時間。
pt メッセージがポストされたときのカーソル位置(スクリーン座標)。");
wParam, lParamはSendMessage()関数と同じなので、そちらを調べて見てください

使い方は次の"CComboBoxのCEditの操作"で例を示します