<Return[MN]><Top>

MapDialogRect

Declare Function Api_MapDialogRect& Lib "user32" Alias "MapDialogRect" (ByVal hDlg&, lpRect As RECT)

Declare Function MapDialogRect Lib "user32" (ByVal hDlg As Long, lpRect As RECT) As Long

指定されたダイアログベース単位を、スクリーン単位(ピクセル)に変換する。指定された 構造体内の座標を、変換後の座標へ置き換えるので、ダイアログボックスを作成したり、ダイアログボックス内にコントロールを配置する際に使われる。

パラメータ
hDlg
    [入力]ダイアログボックスのハンドルを指定する。この関数は、ダイアログボックス作成関数が返したハンドルだけを受け入れる。

    他のウィンドウのハンドルは無効である。
lpRect
    [入出力]変換したいダイアログベースの座標を保持する、1 個の 構造体へのポインタを指定する。

    関数が制御を返すと、この構造体に変換結果が格納される。

戻り値
    関数が成功すると、0 以外の値が返る。
    関数が失敗すると、0 が返る。拡張エラー情報を取得するには、 関数を使う。

解説
    MapDialogRect 関数は、 構造体内の初期の座標がダイアログベース単位を表していると想定する。

    この関数は、座標をダイアログベース単位からピクセル単位へと変換するために、ダイアログボックスの現在の水平ベース単位と垂直ベース

    単位を取得し、その後に次の式を適用する。
    left = MulDiv( left, baseunitX, 4 )
    right = MulDiv( right, baseunitX, 4 )
    top = MulDiv( top, baseunitY, 8 )
    bottom = MulDiv( bottom, baseunitY, 8 )
    ダイアログボックステンプレートで DS_SETFONT または DS_SHELLFONT スタイルが指定されているときは、テンプレートで指定されたフ

    ォントの文字幅と高さの各平均値がベース単位になる。