怎么得到标题栏的高度???
求救啊! 问题点数:20、回复次数:2Top
1 楼suntt(两条腿的狗)回复于 2002-07-24 17:38:18 得分 0
FORM.HEIGHT-RECT.HEIGHT
RECT 是客户区的大小Top
2 楼good_sun(汉堡+泡面)回复于 2002-07-24 18:04:59 得分 0
需要用到以下API:GetWindowRect和GetClientRect。
首先用GetWindowRect得到窗体的宽度与高度,再用GetClientRect得到窗体客户区的宽度与高度,用(窗体宽度-窗体客户区宽度)/2得到窗体边框宽度,之后用窗体高度-窗体客户区高度-窗体边框宽度得到*2得到标题栏的高度。Top
3 楼good_sun(汉堡+泡面)回复于 2002-07-24 18:10:53 得分 20
把下面代码放入模块
Option Explicit
Private Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
'GetWindowBoardWidth函数用来得到窗体边框宽度
Private Function GetWindowBoardWidth(lpForm As Form) As Long
Dim tmpRect As RECT, tmpRect2 As RECT
GetWindowRect lpForm.hwnd, tmpRect
GetClientRect lpForm.hwnd, tmpRect2
GetWindowBoardWidth = (tmpRect.Right - tmpRect.Left - tmpRect2.Right + tmpRect2.Left) / 2
End Function
'GetWindowCaptionWidth函数用来得到窗体标题栏宽度
Public Function GetWindowCaptionWidth(lpForm As Form) As Long
Dim tmpRect As RECT, tmpRect2 As RECT
GetWindowRect lpForm.hwnd, tmpRect
GetClientRect lpForm.hwnd, tmpRect2
GetWindowCaptionWidth = (tmpRect.Bottom - tmpRect.Top - tmpRect2.Bottom + tmpRect2.Top) - GetWindowBoardWidth(lpForm) * 2
End Function
在窗体中
Private sub Form_Click()
Msgbox GetWindowCaptionWidth(me)
End SubTop




