|
|
|
When the user scrolls the contents of a TextBox control - either by clicking on the companion scrollbars or by typing new characters in the edit area - the TextBox control sends its parent form a WM_COMMAND message, and passes its own hWnd property in lParam and the value EN_HSCROLL or EN_VSCROLL in the high word of wParam.
Therefore, to determine when the contents of a TextBox control, you can subclass its parent form, using the following code (based on the MsgHook DLL component): |
Click here to copy the following block |
Const WM_COMMAND = &H111 Const EN_HSCROLL = &H601 Const EN_VSCROLL = &H602
Dim WithEvents FormHook As MsgHook
Private Sub Form_Load() Set FormHook = New MsgHook FormHook.StartSubclass hWnd End Sub
Private Sub FormHook_AfterMessage(ByVal uMsg As Long, ByVal wParam As Long, _ ByVal lParam As Long, retValue As Long) If uMsg = WM_COMMAND Then If lParam = Text1.hWnd Then Select Case (wParam \ &H10000) Case EN_HSCROLL Case EN_VSCROLL End Select End If End If End Sub |
Note that the WM_COMMAND message is sent only when the TextBox scrolls because new chars have been entered, or because the user clicked on the scrollbar's arrow buttons. No messsage is sent when the scrollbar's thumb indicator is moved. Finally, notice that you can use the same code to determine scrolling activity for all the TextBox controls on the form, simply by comparing the value in lParam with the handle of all the TextBox control you want to monitor.
|
|
|
|
Submitted By :
Nayan Patel
(Member Since : 5/26/2004 12:23:06 PM)
|
|
|
Job Description :
He is the moderator of this site and currently working as an independent consultant. He works with VB.net/ASP.net, SQL Server and other MS technologies. He is MCSD.net, MCDBA and MCSE. In his free time he likes to watch funny movies and doing oil painting. |
View all (893) submissions by this author
(Birth Date : 7/14/1981 ) |
|
|