フォームのタイトル(最小化、最大化ボタンが表示されている部分)を
表示する場合と表示しない場合とでは、
ClientTop、ClientLeftの値が違います。
この値を取得したいのですがどうしたらいいのでしょうか?
フォームにはそのようなプロパティはもっていませんよね?
しかし、拡張子「frm」をメモ帳でみるとフォームオブジェクトに対して
値が設定されています・・・
教えて下さい。
お願いします。
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
egさん、ありがとうございます。
解決しました。
ツイート | ![]() |