例えば左ボタンのダブルクリック時には、メッセージは次のように送られる。 対処例LRESULT APIENTRY WindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam ) { // UINT uMsg; は、ウィンドウに送られてきたメッセージの値 switch( uMsg ) { // クリック開始 case WM_LBUTTONDOWN: case WM_RBUTTONDOWN: SetTimer( hWnd, uMsg, GetDoubleClickTime(), NULL ); break; // ダブルクリック case WM_LBUTTONDBLCLK: KillTimer( hWnd, WM_LBUTTONDOWN ); // 左のシングルクリックをキャンセル MessageBox( hWnd, "ダブルクリックされました。", "左", MB_OK ); break; case WM_RBUTTONDBLCLK: KillTimer( hWnd, WM_RBUTTONDOWN ); // 右のシングルクリックをキャンセル MessageBox( hWnd, "ダブルクリックされました。", "右", MB_OK ); break; // シングルクリック case WM_TIMER: KillTimer( hWnd, wParam ); if ( wParam == WM_LBUTTONDOWN ) MessageBox( hWnd, "クリックされました。", "左", MB_OK ); if ( wParam == WM_RBUTTONDOWN ) MessageBox( hWnd, "クリックされました。", "右", MB_OK ); break; …… 省略 …… }//WindowProc | |