switch (message) { case WM_MOUSEMOVE : Mouse.Move(Wnd,point) ; return TRUE ; break ; case WM_RBUTTONUP : return Context (msg) ; break ; case WM_CONTEXTMENU : return Context (msg) ; break ; case WM_COMMAND : return Command (msg) ; break ; default : break ; }
// MK_SHIFT | MK_CONTROL が押されている場合は,WM_RBUTTONUP で処理している BOOL ????????::Context (const MSG* msg) { WPARAM nFlags = GetMouseFlags (msg) ; // キーフラグ // CPoint point = GetClientPoint(msg) ; // カーソル位置 { UINT message = GetMessage(msg) ; // メッセージ番号 if (message == WM_RBUTTONUP) { if (nFlags & MK_CONTROL) { ; } else if (nFlags & MK_SHIFT) { ; } else { return FALSE ; } } else { // WM_CONTEXTMENU の時は,キーの状態は無効 nFlags = 0 ; } } // if (???????->PopupSelect(nFlags,point,TRUE)) { return TRUE ; } // ... }