There are a number of constants that return values from the SendMessage function. You can also use the SendMessage function to get information from a control because, as it is a function it can return a value. These expose a number of useful properties which are not available with the standard VB control properties. These all begin with EM_ . A few are listed below
Const EM_CANUNDO = &HC6 ' Can we undo the last action?
Const EM_GETFIRSTVISIBLELINE = &HCE ' Get the first visible line in the
rich text box
Const EM_GETLINE = &HC4 ' Get the current line number
Const EM_GETLINECOUNT = &HBA ' Get the total number of lines
To send a command to the text box to do any of these things and get a return value, use the following syntax:
Variable = SendMessage(TextBoxName.hWnd, Constant, 0, 0& )
Where Variable is a variable with the correct data type (in the case of using the above constants - Boolean), TextBoxName is the name of your text box, and Constant is one of the constants listed above. The other two properties are set to 0 and 0& (Null) as they are not needed.
The following example also uses a text box, but finds out if you can Undo in Text1, and if so enables the Undo menu item.
mnuUndo.Enabled = SendMessage(Text1.hWnd,
EM_CANUNDO, 0, 0&) ' This will return either True or False
The following example uses a text box, finds out the number of lines, and displays it in a message box.
Dim nLines As Long
nLines = SendMessage(Text1.hWnd, EM_GETLINECOUNT, 0, 0&) ' This will return
either True or False
Msgbox "This document has " & nLines & " lines"
Comments