Win32API講座7回
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
今回はマウス入力をやってみます
マウスホイールを扱うにはウィンドウズのバージョンを指定し...
プログラムの先頭に(正確にはwindows.h、windowsx.hの前に)...
// ウィンドウズバージョン指定
#define _WIN32_WINNT 0x0500
---------------------------------------------
・左ボタン押下 WM_LBUTTON
・右ボタン押下 WM_RBUTTONDOWN
・ホイールボタン押下 WM_MBUTTONDOWN
・左ボタン押上 WM_RBUTTONUP
・右ボタン押上 WM_MBUTTONUP
・ホイールボタン押上 WM_MBUTTONUP
・マウス移動 WM_MOUSEMOVE
・マウスホイール回転量 WM_MOUSEWHEEL
・左ボタンダブルクリック WM_LBUTTONDBLCLK
・右ボタンダブルクリック WM_RBUTTONDBLCLK
について取り扱ってみます
//------------------------------------------------------...
// マウス左ボタン押下メッセージ処理
//
// 引数: hWnd ウィンドウハンドル
// isDoubleClick ダブルクリックされたか
// x,y 押された位置
// keyFlags フラグ
//------------------------------------------------------...
void OnLButtonDown(HWND hWnd, BOOL isDoubleClick, int x,...
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,...
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,...
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 zDe...
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 wPa...
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);
}
デバックコンソールを表示しておきます
実際に動かすとマウスの情報が
色々と取れるようになったことがわかるでしょう
&ref(mouse.GIF);
全ソースコードは下から
&ref(main.cpp);
|(^ω^)やったお|0|
|何これwww意味不すぎwww|2|
|。(`ω´#)。あぁん?最近、だらしねぇな|0|
終了行:
今回はマウス入力をやってみます
マウスホイールを扱うにはウィンドウズのバージョンを指定し...
プログラムの先頭に(正確にはwindows.h、windowsx.hの前に)...
// ウィンドウズバージョン指定
#define _WIN32_WINNT 0x0500
---------------------------------------------
・左ボタン押下 WM_LBUTTON
・右ボタン押下 WM_RBUTTONDOWN
・ホイールボタン押下 WM_MBUTTONDOWN
・左ボタン押上 WM_RBUTTONUP
・右ボタン押上 WM_MBUTTONUP
・ホイールボタン押上 WM_MBUTTONUP
・マウス移動 WM_MOUSEMOVE
・マウスホイール回転量 WM_MOUSEWHEEL
・左ボタンダブルクリック WM_LBUTTONDBLCLK
・右ボタンダブルクリック WM_RBUTTONDBLCLK
について取り扱ってみます
//------------------------------------------------------...
// マウス左ボタン押下メッセージ処理
//
// 引数: hWnd ウィンドウハンドル
// isDoubleClick ダブルクリックされたか
// x,y 押された位置
// keyFlags フラグ
//------------------------------------------------------...
void OnLButtonDown(HWND hWnd, BOOL isDoubleClick, int x,...
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,...
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,...
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 zDe...
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 wPa...
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);
}
デバックコンソールを表示しておきます
実際に動かすとマウスの情報が
色々と取れるようになったことがわかるでしょう
&ref(mouse.GIF);
全ソースコードは下から
&ref(main.cpp);
|(^ω^)やったお|0|
|何これwww意味不すぎwww|2|
|。(`ω´#)。あぁん?最近、だらしねぇな|0|
ページ名: