Difference between revisions of "Form Events and Capabilities VB6"
From Free Knowledge Base- The DUCK Project: information for everyone
m |
m |
||
Line 1: | Line 1: | ||
− | + | Microsoft VB .NET has a form_move event, but Visual BASIC 6 does not. | |
+ | The Paint event won't detect a window being moved off the screen, but will get triggered when the window is moved back onto the screen. | ||
+ | |||
+ | GotFocus/LostFocus Events are not triggered by the form. | ||
+ | |||
+ | Your options are: | ||
+ | |||
+ | == Subclassing using WM_WINDOWPOSCHANGED == | ||
+ | |||
+ | Subclassing can make the Visual Studio IDE unstable. The debugger does not work well when a new WindowProc is installed. | ||
+ | |||
+ | == EventVB.dll Custom Functions == | ||
+ | |||
+ | First add the EventVB.dll to your project references. It is not included with Visual Studio. | ||
<nowiki>Option Explicit</nowiki> | <nowiki>Option Explicit</nowiki> | ||
<nowiki></nowiki> | <nowiki></nowiki> |
Revision as of 17:35, 20 September 2007
Microsoft VB .NET has a form_move event, but Visual BASIC 6 does not.
The Paint event won't detect a window being moved off the screen, but will get triggered when the window is moved back onto the screen.
GotFocus/LostFocus Events are not triggered by the form.
Your options are:
Subclassing using WM_WINDOWPOSCHANGED
Subclassing can make the Visual Studio IDE unstable. The debugger does not work well when a new WindowProc is installed.
EventVB.dll Custom Functions
First add the EventVB.dll to your project references. It is not included with Visual Studio.
Option Explicit Dim WithEvents vbLink As EventVB.APIFunctions Dim WithEvents vbWnd As EventVB.ApiWindow Private Sub Form_Load() Set vbLink = New APIFunctions Set vbWnd = New ApiWindow vbWnd.hWnd = Me.hWnd '\\ Subclass this form vbLink.SubclassedWindows.Add vbWnd End Sub Private Sub vbWnd_Move(ByVal x As Long, ByVal y As Long, Cancel As Boolean) '\\ This event occurs when a drag-move completes: Debug.Print "Moved to " & x & "," & y End Sub Private Sub vbWnd_Moving(ByVal MoveEdges As EventVB.WindowSizingEdges, MoveRectangle As EventVB.APIRect) '\\ This event occurs during the drag-move With MoveRectangle Debug.Print "Moving to " & .Left & "," & .Top & " - " & .Right & "," & .Bottom End With End Sub