今回はマウス入力をやってみます マウスホイールを扱うにはウィンドウズのバージョンを指定しないといけないので // ウィンドウズバージョン指定 #define _WIN32_WINNT 0x0500 ・左ボタン押下 WM_LBUTTON //-------------------------------------------------------// // マウス左ボタン押下メッセージ処理 // // 引数: hWnd ウィンドウハンドル // isDoubleClick ダブルクリックされたか // x,y 押された位置 // keyFlags フラグ //-------------------------------------------------------// void OnLButtonDown(HWND hWnd, BOOL isDoubleClick, int x, int y, UINT keyFlags){ if(isDoubleClick) printf("左ダブルクリック x = %d,y = %d\n",x,y); else printf("左クリックダウン x = %d,y = %d\n",x,y); } //-------------------------------------------------------// // マウス右ボタン押下メッセージ処理 // // 引数: hWnd ウィンドウハンドル // isDoubleClick ダブルクリックされたか // x,y 押された位置 // keyFlags フラグ //-------------------------------------------------------// void OnRButtonDown(HWND hWnd, BOOL isDoubleClick, int x, int y, UINT keyFlags){ if(isDoubleClick) printf("右ダブルクリック x = %d,y = %d\n",x,y); else printf("右クリックダウン x = %d,y = %d\n",x,y); } //-------------------------------------------------------// // マウス真ん中ボタン押下メッセージ処理 // // 引数: hWnd ウィンドウハンドル // isDoubleClick ダブルクリックされたか // x,y 押された位置 // keyFlags フラグ //-------------------------------------------------------// void OnMButtonDown(HWND hWnd, BOOL isDoubleClick, int x, int y, UINT keyFlags){ printf("真ん中クリックダウン x = %d,y = %d\n",x,y); } //-------------------------------------------------------// // マウス左ボタン押上メッセージ処理 // ウィンドウ外で離された場合検知するには // SetCapture関数とReleaseCapture関数を使うこと // // 引数: hWnd ウィンドウハンドル // x,y 離された位置 // keyFlags フラグ //-------------------------------------------------------// void OnLButtonUp(HWND hWnd,int x, int y, UINT keyFlags){ printf("左クリックアップ x = %d,y = %d\n",x,y); } //-------------------------------------------------------// // マウス右ボタン押上メッセージ処理 // ウィンドウ外で離された場合検知するには // SetCapture関数とReleaseCapture関数を使うこと // // 引数: hWnd ウィンドウハンドル // x,y 離された位置 // keyFlags フラグ //-------------------------------------------------------// void OnRButtonUp(HWND hWnd,int x, int y, UINT keyFlags){ printf("右クリックアップ x = %d,y = %d\n",x,y); } //-------------------------------------------------------// // マウス真ん中ボタン押上メッセージ処理 // ウィンドウ外で離された場合検知するには // SetCapture関数とReleaseCapture関数を使うこと // // 引数: hWnd ウィンドウハンドル // x,y 離された位置 // keyFlags フラグ //-------------------------------------------------------// void OnMButtonUp(HWND hWnd,int x, int y, UINT keyFlags){ printf("真ん中クリックアップ x = %d,y = %d\n",x,y); } //-------------------------------------------------------// // マウス移動メッセージ処理 // // 引数: hWnd ウィンドウハンドル // x,y マウスカーソル位置 // keyFlags フラグ //-------------------------------------------------------// void OnMouseMove(HWND hwnd, int x, int y, UINT keyFlags){ printf("マウス位置 x = %d,y = %d\n",x,y); } //-------------------------------------------------------// // マウスホイールメッセージ処理 // // 引数: hWnd ウィンドウハンドル // xPos,yPos マウスカーソル位置 // zDelta ホイ−ル回転量(正:奥方向回転、負:手前方向回転) // fwFlags フラグ //-------------------------------------------------------// void OnMouseWheel(HWND hWnd, int xPos, int yPos, int zDelta, UINT fwKeys){ printf("ホイール回転量 zDelta = %d\n",zDelta); } //------------------------------------------------------// // ウィンドウ破棄メッセージ処理 // // 引数: hWnd ウィンドウハンドル //------------------------------------------------------// void OnDestroy(HWND hWnd){ PostQuitMessage(0); } //-----------------------------------------------------// // ウィンドウプロシージャ // デフォルトの処理はDefWindowProc関数で行う // // 引数: hWnd ウィンドウハンドル // msg メッセージ // wParam パラメータ // lParam パラメータ // // 戻り値:処理結果 //-----------------------------------------------------// LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam){ switch(msg){ // マウス HANDLE_MSG(hWnd,WM_LBUTTONDOWN,OnLButtonDown); HANDLE_MSG(hWnd,WM_RBUTTONDOWN,OnRButtonDown); HANDLE_MSG(hWnd,WM_MBUTTONDOWN,OnMButtonDown); HANDLE_MSG(hWnd,WM_LBUTTONDBLCLK,OnLButtonDown); HANDLE_MSG(hWnd,WM_RBUTTONDBLCLK,OnRButtonDown); HANDLE_MSG(hWnd,WM_LBUTTONUP,OnLButtonUp); HANDLE_MSG(hWnd,WM_RBUTTONUP,OnRButtonUp); HANDLE_MSG(hWnd,WM_MBUTTONUP,OnMButtonUp); HANDLE_MSG(hWnd,WM_MOUSEMOVE,OnMouseMove); HANDLE_MSG(hWnd,WM_MOUSEWHEEL,OnMouseWheel); HANDLE_MSG(hWnd,WM_DESTROY,OnDestroy); } return DefWindowProc(hWnd, msg, wParam, lParam); } デバックコンソールを表示しておきます 全ソースコードは下から
|