Mettre une fenêtre en premier plan

cs_jipp Messages postés 20 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 12 août 2005 - 26 juil. 2005 à 16:23
cs_jipp Messages postés 20 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 12 août 2005 - 1 août 2005 à 09:28
Hey, encore un novice en MFC.
Je souhaitrai connaitre le code qui permette de mettre en premier plan une fenêtre.
Concrétement, j'ai un SDI avec des boites de dialogue non modale. Lorsque j'ouvre un boite de dialogue non modale elle passe en premier plan et le reste jusqu'à ce que je la referme. Par contre, j'aimerai bien pourvoir faire passer la fenêtre principale (mainframe) au premier plan lorsque je clique dessus. Actuellement, elle passe juste active mais la non modale reste dessus.

Merci pour votre aide...

9 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 12
26 juil. 2005 à 21:08
SetWindowPos(hWnd, HWND_TOP, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
ou
SetForegroundWindow(hWnd);
0
cs_jipp Messages postés 20 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 12 août 2005
27 juil. 2005 à 09:09
Ok d'accord... mais je crois que ma question n'était pas assez précise.

Dans quel type d'événement (fonction) dois-je mettre ce code. Je vous qu'au moment ou je clic n'importe ou dans la mainframe celle-ci passe dessus. Et même chose pour les nons modales.

Merci
0
cs_jipp Messages postés 20 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 12 août 2005
27 juil. 2005 à 10:47
Autre PB dans l'utilisation de SetWindowPos() ou de SetForegroundWindow().

Dans le cas SetForegroundWindow( ) le compilo me dit que cette fonction n'a pas de paramètre (en effet je vois que cette fontion est définie 2 fois, dans winuser.h en effet il y a un paramètre ... mais dans mon cazs ça marche pas).

Y'a pê un problème de define ou d'include...

merci pour votre aide
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 12
27 juil. 2005 à 15:21
C'est CWnd::SetForegroundWindow qui ne prend pas de paramètre. La fenêtre est m_hWnd. Sinon tu peux faire ::SetForegroundWindow(hWnd) pour utiliser l'api classique.
Pour que la dialogBox ne reste pas au premier plan, tu la mets en popup au lieu de child
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_jipp Messages postés 20 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 12 août 2005
27 juil. 2005 à 15:24
Comment on fait ça popup au lieu de child ?
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 12
27 juil. 2005 à 15:36
Dans l'editeur de ressources, tu mets type=popup (type ou style je sais plus)
0
cs_jipp Messages postés 20 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 12 août 2005
27 juil. 2005 à 15:37
Cette fenêtre est déjà en popup !!!!! ???
0
cs_jipp Messages postés 20 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 12 août 2005
27 juil. 2005 à 15:44
Voici le code de ma fonction (en effet ça compile mais rien main ne passe pas devant)

int CMainFrame::OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT message)
{
::SetForegroundWindow(pDesktopWnd->m_hWnd);

return CFrameWnd::OnMouseActivate(pDesktopWnd, nHitTest, message);
}
0
cs_jipp Messages postés 20 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 12 août 2005
1 août 2005 à 09:28
Personne ne peut ne répondre SVP ???
0