VC++のダイアログベースで作成しているのですが
マウスのアイコンをキーボードの矢印キーで動かしたいと思っているのですが。
どうしたらいいのかわかりません。
わかるひといたらおしえてください。
MFCはよくわからないんですが
SDKで
「SetCursorPos」と言うAPIがあるので
これを使用すれば十分可能ではないでしょうか?
//手順
矢印キーメッセージ取得...イベント発生
GetCursorPosで現在位置を取得
/*
X,Yで値がかえってくるのでしかるべき処理を記述
*/
SetCursorPosで位置を移動
で、いかがでしょうか?
注意はスクリーン座標でかえってくるので
「ClientToScreen」や「ScreenToClient」APIなどのお世話になるかもしれません。
まだ初心者なもので、もうすこし詳しいプログラムコード
などはわからないでしょうか?APIの使い方もわからないのですが。
直接ソースを教えるのは、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;
};
//-- 後略 --
失敗・・・です
「//-- 略 --」から下はゴミです。
ゴメンナサイm(_ _)m
詳しい説明ありがとうございます