キーボードの矢印キーでマウスのアイコンを操作するには? – プログラミング – Home

キーボードの矢印キーでマウスのアイコン...
 
通知
すべてクリア

キーボードの矢印キーでマウスのアイコンを操作するには?


たろう
 たろう
(@たろう)
ゲスト
結合: 25年前
投稿: 51
Topic starter  

VC++のダイアログベースで作成しているのですが
マウスのアイコンをキーボードの矢印キーで動かしたいと思っているのですが。
どうしたらいいのかわかりません。
わかるひといたらおしえてください。


引用解決済
トピックタグ
じゃぶろー
 じゃぶろー
(@じゃぶろー)
ゲスト
結合: 25年前
投稿: 8
 

MFCはよくわからないんですが
SDKで
「SetCursorPos」と言うAPIがあるので
これを使用すれば十分可能ではないでしょうか?

//手順
矢印キーメッセージ取得...イベント発生
GetCursorPosで現在位置を取得
/*
X,Yで値がかえってくるのでしかるべき処理を記述
*/
SetCursorPosで位置を移動

で、いかがでしょうか?

注意はスクリーン座標でかえってくるので
「ClientToScreen」や「ScreenToClient」APIなどのお世話になるかもしれません。


返信引用
たろう
 たろう
(@たろう)
ゲスト
結合: 25年前
投稿: 51
Topic starter  

まだ初心者なもので、もうすこし詳しいプログラムコード
などはわからないでしょうか?APIの使い方もわからないのですが。


返信引用
じゃぶろー
 じゃぶろー
(@じゃぶろー)
ゲスト
結合: 25年前
投稿: 8
 

直接ソースを教えるのは、PGとしてはあまりよくないのですが・・・
あくまで例としてよりよいアルゴリズムを考えてくださいね(^_^)/

const long clMOVE = 5; //5ピクセルずつ移動
POINT Pos;

//-- プロシージャ内 --//

//-- 前略 --//

case WM_KEYUP:
GetCursorPos(&Pos); //マウスの現在の位置を取得
switch(wParam){   //状況に応じて位置を変更
case VK_LEFT:
Pos.x -= clMOVE;
break;
case VK_UP:
Pos.y -= clMOVE;;
break;
case VK_RIGHT:
Pos.x += clMOVE;;
break;
case VK_DOWN:
Pos.y += clMOVE;;
break;
}
SetCursorPos(Pos.x,Pos.y); //変更した位置を適用
break;
};

//-- 略 --
Pos.x -= clMOVE;
break;
   case VK_UP:
Pos.y -= clMOVE;;
break;
case VK_RIGHT:
Pos.x += clMOVE;;
break;
case VK_DOWN:
Pos.y += clMOVE;;
break;
}

SetCursorPos(Pos.x,Pos.y); //変更した位置を適用
break;
};

//-- 後略 --


返信引用
じゃぶろー
 じゃぶろー
(@じゃぶろー)
ゲスト
結合: 25年前
投稿: 8
 

失敗・・・です
「//-- 略 --」から下はゴミです。
ゴメンナサイm(_ _)m


返信引用
たろう
 たろう
(@たろう)
ゲスト
結合: 25年前
投稿: 51
Topic starter  

詳しい説明ありがとうございます


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました