最終更新 2003 09/22
サンプルのダウンロード → API_SetCursorPos.lzh(37k)
サンプルソースコード
ClientToScreen 関数
SetCursorPos 関数
対応しているバージョン
95, 98, Me, NT3.1以降, 2000, XP
使用するヘッダとライブラリ
winuser.h
user32.lib
|
マウスカーソルの位置を設定するには SetCursorPos() 関数を使います。
引数に渡すマウスカーソルのX位置とY位置は、ディスプレイ(モニタ) の
左上隅を ( 0, 0 ) とするスクリーン座標です。
なので、マウスカーソルの位置をクライアント座標 ( ウィンドウの
クライアント領域の左上隅を ( 0, 0 ) とする座標 ) で持っている時は
スクリーン座標に変換してあげる必要があります。
WM_MOUSEMOVE メッセージで取得できるマウスカーソルのX位置とY位置は
クライアント座標ですので、WM_MOUSEMOVE を使ってカーソル位置を
得ている場合はスクリーン座標に変換する必要があります。
クライアント座標をスクリーン座標へ変換するには
ClientToScreen() 関数を使います。
ClientToScreen() 関数へマウスカーソルの位置を渡すには
POINT 構造体を使わないといけません。
まず、POINT 構造体変数を宣言して、メンバの x と y にマウスカーソルの
値を代入します。
POINT mouse;
mouse.x = マウスカーソルのX位置;
mouse.y = マウスカーソルのY位置;
値を設定したら POINT 構造体変数のアドレスを ClientToScreen() 関数に
渡します。
ClientToScreen( HWND, &mouse );
HWND には、CreateWindow() 関数で得られるウィンドウハンドルを
渡してあげます。
|