フォームのタイトル部

解決


Caption  2005-04-13 20:12:33  No: 120922  IP: [192.*.*.*]

フォームのタイトル(最小化、最大化ボタンが表示されている部分)を
表示する場合と表示しない場合とでは、
ClientTop、ClientLeftの値が違います。
この値を取得したいのですがどうしたらいいのでしょうか?
フォームにはそのようなプロパティはもっていませんよね?
しかし、拡張子「frm」をメモ帳でみるとフォームオブジェクトに対して
値が設定されています・・・

教えて下さい。
お願いします。

編集 削除
eg  2005-04-14 11:54:53  No: 120923  IP: [192.*.*.*]

VB6で、こういうことかな?

Option Explicit
Private Type POINTAPI
    x As Long
    y As Long
End Type
Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type
Private Declare Function GetWindowRect Lib "user32" _
        (ByVal hwnd As Long, lpRect As RECT) As Long
Private Declare Function ScreenToClient Lib "user32" _
        (ByVal hwnd As Long, lpPoint As POINTAPI) As Long

Private Sub Form_Load()
    Dim rc As RECT
    Dim pt As POINTAPI
    Call GetWindowRect(Me.hwnd, rc)
    pt.x = rc.Left
    pt.y = rc.Top
    Call ScreenToClient(Me.hwnd, pt)
    Debug.Print "ClientLeft ="; -pt.x * Screen.TwipsPerPixelX
    Debug.Print "ClientTop ="; -pt.y * Screen.TwipsPerPixelY
End Sub

編集 削除
Caption  2005-04-15 10:07:28  No: 120924  IP: [192.*.*.*]

egさん、ありがとうございます。
解決しました。

編集 削除