[PR]

スクリーン座標、ウィンドウ座標、クライエント座標を
相互に変換する

戻る

 スクリーン座標をクライエント座標に変換するには、関数 ScreenToClient() を使用する。
 クライエント座標をスクリーン座標に変換するには、関数 ClientToScreen() を使用する。


 スクリーン座標とウィンドウ座標の相互変換。

//*********************************************************
// スクリーン座標をウィンドウ座標に変換する。
//*********************************************************
POINT
ScreenToWindow
	(
		HWND  hWnd,
		POINT Point
	)
{
	RECT Rect;

	GetWindowRect( hWnd, &Rect ); // ウィンドウ矩形の取得
	Point.x = Point.x - Rect.left;
	Point.y = Point.y - Rect.top;

	return Point;
}//ScreenToWindow

//*********************************************************
// ウィンドウ座標をスクリーン座標に変換する。
//*********************************************************
POINT
WindowToScreen
	(
		HWND  hWnd,
		POINT Point
	)
{
	RECT Rect;

	GetWindowRect( hWnd, &Rect ); // ウィンドウ矩形の取得
	Point.x = Point.x + Rect.left;
	Point.y = Point.y + Rect.top;

	return Point;
}//WindowToScreen

 ウィンドウ座標とクライエント座標の相互変換。

//*********************************************************
// ウィンドウ座標をクライエント座標に変換する。
//*********************************************************
POINT
WindowToClient
	(
		HWND  hWnd, 
		POINT Point
	)
{
	Point = WindowToScreen( hWnd, Point ); // ウィンドウ座標をスクリーン座標に変換
	ScreenToClient( hWnd, &Point );        // スクリーン座標をクライエント座標に変換
	return Point;
}//WindowToClient

//*********************************************************
// クライエント座標をウィンドウ座標に変換する。
//*********************************************************
POINT
ClientToWindow
	(
		HWND  hWnd,
		POINT Point
	)
{
	ClientToScreen( hWnd, &Point );        // クライエント座標をスクリーン座標に変換
	Point = ScreenToWindow( hWnd, Point ); // スクリーン座標をウィンドウ座標に変換
	return Point;
}//ClientToWindow

関連

デスクトップ領域、デスクトップ作業領域のサイズを取得する
ウィンドウ、クライエント領域のサイズを取得する
タスクバー領域を取得する



Google
ご意見・ご感想をお聞かせ下さい。匿名で送信できます。

 * 返信が必要な場合には postmaster@katsura-kotonoha.sakura.ne.jp へ直接メールしてください。

水無瀬 優 postmaster@katsura-kotonoha.sakura.ne.jp
キャラアニ.com
>> キャラアニ.com