マウスカーソルの位置を設定する

最終更新 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() 関数で得られるウィンドウハンドルを 渡してあげます。

| home |