VC++のプログラム上でマウスカーソルを左クリックするには?

解決


TOM  2003-12-13 03:21:38  No: 52876

任意の位置にマウスカーソルを移動しその位置でクリックするのは可能でしょうか?可能であればどのようにすればよいか。もしよろしければ教えてください。


YuO  2003-12-13 03:43:41  No: 52877

SetCursorPosでマウスポインタを移動させ,
mouse_eventでクリックのシミュレートすることで実現できます。


moith  2003-12-13 09:28:59  No: 52878

MFCならば、以下のようにするとよいですね。

POINT point;
point.x = 任意のX座標;
point.y = 任意のY座標;
SetCursorPos( point.x, point.y );
HWND hWnd = WindowFromPoint( point );
SendMessage( hWnd, WM_LBUTTONDOWN, 0, MAKELPARAM( point.x, point.y);

ウィンドウが無効化されていたら使えませんけど...


YuO  2003-12-13 10:02:52  No: 52879

クリックはUP側で判定することもあるので,WM_LBUTTONDOWNだけ送ることは危険です。
WM_LBUTTONDOWNを送るのであれば,WM_LBUTTONUPも送る必要があります。
#私はUP側で判断しています。

それから,メッセージを直接送るとSetCaptureされている場合誤動作するかもしれませんよ。
#故にmouse_event or SendInputを使う。


tom  2003-12-15 18:06:16  No: 52880

皆さんご親切にどうもありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加