VB6 : Maintenir une appli au dessus des autres.

Septembre 2016

Pour mettre une feuille au dessus des autres dans une application MDI il y a bien sur la fonction Zordre 0, mais mon propos est de maintenir une appli au dessus des autres appli, qu'elles soient présente à l'écran ou appellées après.

Dans un module général


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

Dans la forme d'ouverture


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

En rappel


Il arrive que d'autres appli utilise cette fonction, il faut donc remettre la fonction dans l'activation de la forme, ce qui permet de reprendre cette fonction si la forme est sélectionée.
Private Sub Form_Activate()
Dim R as long
R = SetWindowPos(NomFeuille.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)
end sub

Supprimer la priorité


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

A voir également :

Ce document intitulé «  VB6 : Maintenir une appli au dessus des autres.  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.