<Return[MN]><Top>

MapWindowPoints

Declare Function Api_MapWindowPoints& Lib "user32" Alias "MapWindowPoints" (ByVal hwndFrom&, ByVal hwndTo&, lppt As Any, ByVal cPoints&)

Declare Function MapWindowPoints Lib "user32" Alias "MapWindowPoints" (ByVal hwndFrom As Long, ByVal hwndTo As Long, lppt As Any, ByVal cPoints As Long) As Long

複数の点を、あるウィンドウを基準とする座標空間から、他のウィンドウを基準とする座標空間へ変換(マップ)する。

パラメータ
hWndFrom
    変換対象の点を保持している(変換元)ウィンドウのハンドルを指定する。NULL または HWND_DESKTOP を指定すると、点はスクリーン

    座標で表現されていると見なされる。
hWndTo
    変換後の点を保持する(変換先)ウィンドウのハンドルを指定する。NULL または HWND_DESKTOP を指定すると、点はスクリーン座標へ

    変換される。
lpPoints
    変換対象の点の座標を保持している 構造体からなる 1 つの配列へのポインタを指定する。これらの点は、デバイス単位で表現されていると

    見なされる。代わりに、1 個の 構造体へのポインタを指定することもできる。この場合は、cPoints パラメータで 2 を指定するべきである。
cPoints
    lpPoints パラメータで、複数の POINT 構造体からなる 1 つの配列へのポインタを指定した場合、配列内の POINT 構造体の数を指定す

    る。

戻り値
    関数が成功すると、各点の移動距離を示す 32 ビット値が返る。下位ワード(low-order word)は、変換元の各点の水平方向に追加された

    ピクセル数(移動距離)を示す。変換前の水平座標に、この値を加えた結果が、変換後の水平座標になる。上位ワード(high-order word)

    は、垂直方向に追加されたピクセル数(移動距離)を示す。変換前の垂直座標に、この値を加えた結果が、変換後の垂直座標になる。
    関数が失敗すると、0 が返る。
    Windows NT/2000:拡張エラー情報を取得するには、 関数を使う。

解説
    hWndFrom と hWndTo の一方または両方がミラー化ウィンドウである場合(つまり、拡張スタイルである WS_EX_LAYOUTRTL が割り当

    てられている)、lpPoints パラメータで 2 個以下の点を渡すと、MapWindowPoints はミラー化された座標を自動的に調整する。2 個より多

    くの点を渡すと、この関数は失敗しないが、誤った位置を返す。したがって、長方形の座標を正しく変換することを保証するために、1 回に

    2 個以下の点を渡して MapWindowPoints を呼び出さなければならない。