VB3 How to Set the Formatting Rectangle of a TextBox
ID: Q101162
|
The information in this article applies to:
-
Microsoft Visual Basic Standard and Professional Editions for Windows, version 3.0
SUMMARY
You can change the formatting rectangle of a text box to control when
scrolling occurs.
The formatting rectangle determines the range of positions allowed for the
caret (text cursor). The limiting rectangle is independent of the size of
the edit-control window. By default, the formatting rectangle is the same
as the client area of the edit-control window.
MORE INFORMATION
Using the SendMessage API call and the EM_SETRECT message, you can set the
formatting rectangle of a text box. If you do not send the EM_SETRECT
message, the formatting rectangle defaults to the size of the client area
of the text box.
You can use this API call to control where the scrolling starts in a text
box. The default scrolling starts when the cursor reaches the left side of
the text box. This API can make that rectangle smaller than the actual text
box forcing the scrolling to start before the cursor reaches the left side
of the text box.
Note the following if you do not use the message until after text has been
entered into the text box:
If the text box does not have a horizontal scroll bar, and the formatting
rectangle is set to be larger than the text box window, lines of text
exceeding the width of the text box (but smaller than the width of the
formatting rectangle) are clipped instead of wrapped.
Step-by-Step Demonstration
- Start Visual Basic, or if you are in Visual Basic, start a new project.
- Add a text box (Text1) to your form.
- Set the Text1 MultiLine Property to True and the ScrollBars Property to
3 (Both).
- From the File menu, choose New Module (Module1.bas).
- Add the following code to Module1.bas:
Type recttype
l As Integer ' left of rectangular region
t As Integer ' top of region
r As Integer ' right of region
b As Integer ' bottom of region
End Type
' Note the following Declare must be on one, single line:
Declare Function SendMessage Lib "user" (ByVal hwnd%, ByVal wMsg%, _
ByVal wp%, lp As Any) As Long
- Add the following code to the Form_Load event for Form1:
Sub Form_Load ()
EM_SETRECT = &H403 ' Set EM_SETRECT variable
Dim rect As recttype ' dim variable as rectype
rect.l = 0 ' Set left to upper left corner
rect.t = 0 ' Set top to upper left corner
rect.r = 200 ' Set right of region
rect.b = 200 ' Set bottom of region
x% = SendMessage(text1.hwnd, EM_SETRECT, 0, rect)
End Sub
- Run the program.
Start typing in the text box. Scrolling will begin when you reach the edge
of your region. You can change the size of your region by changing the
values of the rect type.
Additional query words:
2.00 3.00 textbox rect
Keywords : kbcode kbWndw
Version : 2.00 3.00
Platform : WINDOWS
Issue type :
|