Keep application window on top of other apps with VB6

Keep application window on top of other apps with VB6

In this article we will explain how to keep an application window on top of other applications with VB6.

How to keep application window on top of other apps 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 

How to keep application window on top of other apps 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

How to call the function?

The function must call 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

How to remove 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
Do you need more help with VBA? Check out our forum!