フォームのタイトル部

解決


Caption  2005-04-14 05:12:33  No: 120922

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

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


eg  2005-04-14 20:54:53  No: 120923

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 19:07:28  No: 120924

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


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加