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 ; }
// ...
}