カーソル – プログラミング – Home

通知
すべてクリア

[解決済] カーソル


初心者
 初心者
(@初心者)
ゲスト
結合: 24年前
投稿: 206
Topic starter  

マウスカーソルを移動させるプログラムですがうまく動きません。
どこがおかしいか、ご指摘ください。

LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
POINT pt;
switch( msg )
{
case WM_KEYDOWN:
GetCursorPos(&pt);
if(wp==VK_UP) pt.y -=5;
if(wp==VK_DOWN) pt.y +=5;
if(wp==VK_RIGHT) pt.x +=5;
if(wp==VK_LEFT) pt.x -=5;

SetCursorPos(pt.x,pt.y);
return 0;

case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc( hWnd, msg, wp, lp );
}


引用未解決
トピックタグ
ぬふや
 ぬふや
(@ぬふや)
ゲスト
結合: 18年前
投稿: 34
 

上手くいかなくてどうなるのか。
とりあえず、
・自分のWindowにフォーカスがないとカーソルは動かない。
・自分のウィンドウでも子ウィンドウにフォーカスがあってもカーソルは動かない。
・キーを押した瞬間以外でもこのメッセージは飛んでくる。
は分かるけど。


返信引用
初心者
 初心者
(@初心者)
ゲスト
結合: 24年前
投稿: 206
Topic starter  

回答ありがとうございます!

実行で現われたウインドウをクリック。(一応フォーカスのつもりです。)
それから、↑→↓← キーを押す(カーソルなど何も現われない。)

GetCursorPos()で現在の位置を取得し、
SetCursorPos()でカーソル位置を移動してるはずですがうまくいきません。

解る方お願いします!
教えてください!


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

関数の説明読んでますか?
>マウスカーソル( マウスポインタ)の位置を、指定されたスクリーン座標に
>移動します。ただし、ClipCursor 関数によって設定された長方形よりも
>外側を指定すると、システムは座標を自動的に調整して、この長方形の中に
>とどまらせます。
「ClipCursor 関数によって設定」は、行っていますか?


返信引用
初心者
 初心者
(@初心者)
ゲスト
結合: 24年前
投稿: 206
Topic starter  

そうでしたか!
本当にどうもありがとうございました!


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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