Private Type RECT
x As Long
y As Long
dx As Long
dy As Long
End Type
Private Declare Function DeleteObject Lib "gdi32.dll" _
(ByVal hObject As Long) As Long
Private Declare Function CreateSolidBrush Lib "gdi32.dll" _
(ByVal crColor As Long) As Long
Private Declare Function GetDC Lib "user32.dll" _
(ByVal hWnd As Long) As Long
Private Declare Function FrameRect Lib "user32.dll" _
(ByVal hDC As Long, lprc As RECT, ByVal hbr As Long) As Long
Private Declare Function SendMessageAny Lib "user32.dll" Alias "SendMessageA" _
(ByVal hWnd As Long, ByVal MSG As Long, wParam As Any, lParam As Any) As Long
Private Const EM_SETRECT = &HB3
Dim lpRect As RECT
Private Sub Form_Load()
Dim dx, dy
dx = Me.Text1.Width / 5
dy = Me.Text1.Height / 5
With lpRect
.x = dx
.y = dy
.dx = Me.Text1.Width - dx
.dy = Me.Text1.Height - dy
End With
Call SendMessageAny(Me.Text1.hWnd, EM_SETRECT, ByVal 0, lpRect)
End Sub
Private Sub Text1_Change()
Dim hbr As Long
hbr = CreateSolidBrush(vbRed)
Call FrameRect(GetDC(Me.Text1.hWnd), lpRect, hbr)
Call DeleteObject(hbr)
End Sub |