Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2009 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C++] rendre une fenetre modal

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] rendre une fenetre modal

n°142452
AliG
Posté le 22-05-2002 à 14:34:05  profilanswer
 

Savez vous comment faire pour rendre une fenetre modale? sachant que ma fenetre n'est pas une dialog box, c'est juste une "form" classique.
J'ai vu qu'il y a une proprieté "modal" , mais c'est juste en lecture... quand je mets :
nomForm.modal=true;
ca marche pas...
 
Savez vous comment je peux faire?
 
Merci!

mood
Publicité
Posté le 22-05-2002 à 14:34:05  profilanswer
 

n°142463
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 22-05-2002 à 14:40:33  profilanswer
 

si tu utilises les MFC, une méthode DoModal est faite pour ça
 
Ex :
 
CMafenetre fenetre;
fenetre.DoModal();
ce code créé une instance de la classe CMaFenetre, héritant de CDialog, puis l'affiche modalement par sa méthode DoModal()
 
A+

 

[jfdsdjhfuetppo]--Message édité par Harkonnen le 22-05-2002 à 14:41:43--[/jfdsdjhfuetppo]


---------------
J'ai un string dans l'array (Paris Hilton)
n°142469
antp
Super Administrateur
Champion des excuses bidons
Posté le 22-05-2002 à 14:43:27  profilanswer
 

Si c'est en C++Builder il faut l'appeler avec ShowModal() (au lieu de Show() ou Visible = true);

 

[jfdsdjhfuetppo]--Message édité par antp le 22-05-2002 à 14:43:37--[/jfdsdjhfuetppo]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°142472
AliG
Posté le 22-05-2002 à 14:45:09  profilanswer
 

Sans les MFC, c'est pas possible?

n°142473
AliG
Posté le 22-05-2002 à 14:45:37  profilanswer
 

C'est avec Visual C++

n°142500
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 22-05-2002 à 15:13:32  profilanswer
 

Sans les MFC, c'est un peu plus compliqué.
 
Tu dois d'abord créer une fenêtre principale, dont le hwnd sera par exemple mainHwnd
 
Admettons que l'appui sur un bouton de cette fenêtre déclenche l'ouverture d'une autre fenêtre modale (dont le hwnd sera noté hwnd, tu peux la créer comme suit :
 
1 - En réponse au message WM_CREATE de cette fenetre modale, tu désactives la fenêtre parent et tu donnes le focus à la fenêtre modale :
 
EnableWindow(mainHwnd,FALSE); // désactive la fenêtre parent
SetFocus(hwnd); // donne le focus à la fenêtre modale
 
2 - Une fois que tu veux fermer cette fenêtre modale, tu rends la main à la fenêtre parent, dans le message WM_DESTROY de la fenêtre modale :
 
EnableWindow(mainHwnd,TRUE); // active la fenetre parent
SetFocus(mainHwnd); // donne le focus à la fenêtre parent
 
Ceci devrait normalement fonctionner sans problème.
 
A+

 

[jfdsdjhfuetppo]--Message édité par Harkonnen le 22-05-2002 à 15:14:55--[/jfdsdjhfuetppo]


---------------
J'ai un string dans l'array (Paris Hilton)
n°142510
AliG
Posté le 22-05-2002 à 15:18:33  profilanswer
 

Je vais essayer ca,  
Merci beaucoup! ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++] rendre une fenetre modal

 

Sujets relatifs
[Html] ouvrir dans une nouvelle fenetre?[VB] Ouvrir une "fenêtre de recherche" (?)
[PHP] Ouvrir dans une nouvelle fenetrejavascript: comment fermer une fenetre...
[HTML] interaction entre une fenêtre de l'explorateur et une popup[ Php ] rendre du PHP executable...
C++/opengl integrer opengl dans une fenetre existante[debutant inside] HTML : dimensionner une fenetre issue d'un lien
[MFC] Forcer une taille de fenêtre[Javascript / PHP] Ouverture de fenêtre, taille spécifiée
Plus de sujets relatifs à : [C++] rendre une fenetre modal


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)