VB的textbox的内容如何上下左右都居中?

来源:百度知道 编辑:UC知道 时间:2024/06/29 01:58:19
左右的容易,上下的怎么办?

也包括label的居中问题,谢谢!

可用在文本框的textalign属性里设置
该属性在text属性的下面

'TextBox的MultiLine必须设为True

Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _
ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any) As Long
Private Const EM_GETRECT = &HB2
Private Const EM_SETRECTNP = &HB4

Sub VerMiddleText(mText As TextBox)
If mText.MultiLine = False Then Exit Sub
Dim rc As RECT, tmpTop As Long, tmpBot As Long
SendMessage mText.hwnd, EM_GETRECT, 0, rc
With Me.Font
.Name = mText.Font.Name
.Size = mText.Font.Size
.Bold = mText.Font.Bold
End With
tmpTop = ((rc.Bottom - rc.Top) - _
(mText.Parent.TextHeight("H") \ Screen.TwipsPerPixelY)) \ 2