devxlogo

Read and modify a TextBox control’s formatting rectangle

Read and modify a TextBox control’s formatting rectangle

By sending appropriate messages to a multi-line TextBox control you can read and modify its formatting rectangle – that is, the inner portion of the control where the user can type. Modifying the size and position of this area can be useful, for example, to leave a left margin where you can add line numbers or other text markers. Here’s is the complete source code for the two routines that read and modify the formatting rectangle:

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal _    hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _    lParam As Any) As LongPrivate Type RECT    Left As Long    Top As Long    Right As Long    Bottom As LongEnd TypeConst EM_GETRECT = &HB2Const EM_SETRECT = &HB3' Get the formatting rectangle.Sub TextBoxGetRect(tb As TextBox, Left As Long, Top As Long, Right As Long, _    Bottom As Long)    Dim lpRect As RECT    SendMessage tb.hwnd, EM_GETRECT, 0, lpRect    Left = lpRect.Left    Top = lpRect.Top    Right = lpRect.Right    Bottom = lpRect.BottomEnd Sub' Set the formatting rectangle and refresh the control.Sub TextBoxSetRect(tb As TextBox, ByVal Left As Long, ByVal Top As Long, _    ByVal Right As Long, ByVal Bottom As Long)    Dim lpRect As RECT    lpRect.Left = Left    lpRect.Top = Top    lpRect.Right = Right    lpRect.Bottom = Bottom    SendMessage tb.hwnd, EM_SETRECT, 0, lpRectEnd Sub

See also  Why ChatGPT Is So Important Today
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist