VB6 - Keep application window on top of other apps

December 2016


VB6 - Keep application window on top of other apps



How to keep an application window on top of other applications?

In a general module


Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal_ 
hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As _
Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Public Const HWND_TOPMOST = -1
Public Const HWND_NOTOPMOST = -2
Public Const SWP_NOACTIVATE = &H10
Public Const SWP_SHOWWINDOW = &H40
Public Const SWP_NOMOVE = 2
Public Const SWP_NOSIZE = 1

In the form


Private Sub Form_Load() 
Dim R as long
R = SetWindowPos(SheetName.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)
end sub

Calling the function


The function must called upon the activation of the form. It will allow the program to resume the function if the form is selected (as the function may be used by other application).
Private Sub Form_Activate() 
Dim R as long
R = SetWindowPos(SheetName.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)
end sub

Removing priority


Private sub SuppPriority() 
Dim R as long
R= SetWindowPos(NomFeuille.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)
End sub

Related :

This document entitled « VB6 - Keep application window on top of other apps » from CCM (ccm.net) is made available under the Creative Commons license. You can copy, modify copies of this page, under the conditions stipulated by the license, as this note appears clearly.