如何计算VB6中标题栏的高度?

Cla*_*ols 7 vb6

我正在尝试在其下方的控件上显示一个相对于Button的表单.

但Button.top相对于底部表单的标题栏,顶部表单将相对于屏幕.

所以,为了弥补我现在需要的标题栏有多高.

我使用过Form.height-Form.ScalehHeight但是ScaleHeight不包括标题栏边框,因此Scaleheight会略微膨胀.

任何人都知道如何计算的高度,只是标题栏?

rpe*_*ich 9

您需要使用GetSystemMetricsAPI调用来获取标题栏的高度.

Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Private Const SM_CYCAPTION = 4

Property Get TitleBarHeight() as Long
    TitleBarHeight = GetSystemMetrics(SM_CYCAPTION)
End Property
Run Code Online (Sandbox Code Playgroud)

注意:这将返回高度(以像素为单位).如果你需要缇,你将不得不使用表格的ScaleY方法转换,如下所示:Me.ScaleY(TitleBarHeight(), vbPixels, vbTwips)


rec*_*ive 9

减去它:

(Form.height-Form.ScaleHeight) - (Form.Width-Form.ScaleWidth) / 2
Run Code Online (Sandbox Code Playgroud)