7,759
社区成员
发帖
与我相关
我的任务
分享
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 WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function ExtTextOut Lib "gdi32" Alias "ExtTextOutA" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal wOptions As Long, ByVal lpRect As Any, ByVal lpString As String, ByVal nCount As Long, lpDx As Long) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Declare Function GetTextExtentPoint32 Lib "gdi32" Alias "GetTextExtentPoint32A" (ByVal hdc As Long, ByVal lpsz As String, ByVal cbString As Long, lpSize As POINTAPI) As Long
Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
Private Sub Form_Load()
Me.Font = "宋体"
Text1.Font = "宋体"
Me.FontSize = 12
Text1.FontSize = 12
Text1.Text = ""
End Sub
Private Sub Text1_Change()
Dim l As Long
Dim w As Long
Dim textsize As POINTAPI
l = LenB(StrConv(Text1.Text, vbFromUnicode))
w = GetTextExtentPoint32(Me.hdc, Text1.Text, l, textsize)
If l * textsize.X > Text1.Width Then
Text1.Text = Mid(Text1.Text, 1, Len(Text1.Text) - 1)
Text1.SelStart = Len(Text1.Text)
End If
End Sub