SirGus
Messages postés12Date d'inscriptionsamedi 6 octobre 2001StatutMembreDernière intervention23 décembre 2002
-
20 févr. 2002 à 02:41
SirGus
Messages postés12Date d'inscriptionsamedi 6 octobre 2001StatutMembreDernière intervention23 décembre 2002
-
20 févr. 2002 à 22:12
Bonjour,
Voilà, je vous explique mon problême:
J'ai une première form completement noir sans bordures qui prends tout le fond de l'écran et qui fait office de bureau en quelque sorte "frmBack". Par dessus cette form je veux afficher d'autres forms. J'ai réussi à mettre une seule form sur le dessus. Pour que ça fonctionne, j'ai du mettre ces deux lignes de code dans le "Form Load" de "frmBack":
frmBack.Show vbModal -1
frmMenu.Show vbModal
Cependant, je ne peux plus contrôler les autres form puisque "frmMenu" est modale... Si je désactive ces deux lignes de code, je me retrouve avec le fond noir en premier plan "frmBack" et l'on ne voit pas "frmMenu" puisqu'elle se trouve en dessous... S'il vous plait dites moi le s'il est possible de tout simplement mettre "frmBack" en dernier plane et toutes les autres forms sur le dessus...
Merci!
Un programmeur désespéré qui cherche depuis des heures...
Fipo
Messages postés9Date d'inscriptionmercredi 11 octobre 2000StatutMembreDernière intervention24 octobre 2005 20 févr. 2002 à 17:22
Salut,
Si ça t'interesse j'ai longtemps cherché la solution et en fait il suffit de faire la chose suivante chaque fois que tu déinis une nouvelle form par rapport à frmBack.
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOACTIVATE = &H10
Const SWP_SHOWWINDOW = &H40
Private Declare Sub 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)
Private Sub Form_Activate()
SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
End Sub
Fipo
Messages postés9Date d'inscriptionmercredi 11 octobre 2000StatutMembreDernière intervention24 octobre 2005 20 févr. 2002 à 17:25
Salut,
Si ça t'interesse j'ai longtemps cherché la solution et en fait il suffit de faire la chose suivante chaque fois que tu déinis une nouvelle form par rapport à frmBack.
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOACTIVATE = &H10
Const SWP_SHOWWINDOW = &H40
Private Declare Sub 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)
Private Sub Form_Activate()
SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
End Sub