dcsimg
Login | Register   
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


Tip of the Day
Language: VB4/32,VB5,VB6
Expertise: Intermediate
Mar 31, 2001

WEBINAR:

On-Demand

Application Security Testing: An Integral Part of DevOps


TextBoxGetLineColumn - Get caret position in a multiline TextBox control

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
Const EM_LINEFROMCHAR = &HC9
Const EM_LINEINDEX = &HBB

' Get the line/column coordinates of a given character (both are zero-based).
' If charIndex is negative, it returns the coordinates of the caret

Sub TextBoxGetLineColumn(tb As TextBox, ByVal charIndex As Long, line As Long, _
    column As Long)
    If charIndex < 0 Then charIndex = tb.SelStart
    ' Get the line number.
    line = SendMessage(tb.hwnd, EM_LINEFROMCHAR, charIndex, ByVal 0&)
    ' Get the column number by subtracting the line's start
    ' index from the caret position
    column = tb.SelStart - SendMessage(tb.hwnd, EM_LINEINDEX, line, ByVal 0&)
End Sub
Francesco Balena
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date