
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