戻る

フォームのクライアント領域のサイズを取得する方法(API関数GetClientRectの使用例)
動作環境 Windows95/98 開発環境 Visual Basic 6.0 (+SP3)
説明 API関数GetClientRectを使用して、フォームのクライアント領域のサイズを取得します。
用意するもの:標準フォーム(Form1)、コマンドボタン(Command1)
'変数の明示的な宣言を強制します。
Option Explicit

'API関数 GetClientRect の利用を宣言します。
Private Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
'第1引数:クライアント領域の座標を取得するウインドウのハンドル
'第2引数:クライアント領域の座標を格納するRECT構造体
'戻り値 :成功すると"0"以外の値、失敗すると"0"

'クライアント領域の座標を格納するRECT構造体を定義します。
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Private Sub Command1_Click()

Dim ret As Long
Dim MyRect As RECT

'クライアント領域を取得します。
ret = GetClientRect(Form1.hwnd, MyRect)

'クライアント領域の座標情報をデバッグウインドウに表示
Debug.Print "Left:" & MyRect.Left
Debug.Print "Top:" & MyRect.Top
Debug.Print "Right:" & MyRect.Right
Debug.Print "Bottom:" & MyRect.Bottom

'取得されたクライアント領域の情報に基づいて、クライアント領域をラインで囲みます。
Line (MyRect.Left, MyRect.Top)-(MyRect.Right - Form1.DrawWidth, MyRect.Bottom - Form1.DrawWidth), , B

End Sub

Private Sub Form_Load()

'フォームのスケールモードをピクセル単位に指定します。
Form1.ScaleMode = vbPixels

End Sub