begin process at 2008 07 20 23:02:08
1 213 505 membres
406 nouveaux aujourd'hui
14 167 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : MFC et boite de dialogue non modale [ Archives / Graphique ] (Picospicos)

MFC et boite de dialogue non modale le 18/06/2004 11:29:35

Picospicos

Bonjour,

Je débute la programmation MFC. Je cherche à faire une boite de dialogue non modale (avec Create), mais le pb est qu'elle ne reste que quelques millisecondes affichée et en suite elle disparait. Si j'affiche la boite de dialogue avec DoModal ca marche bien.

Est ce que quelqu'un pourrait me dire ce que je fais de mal? Quelqu'un a-t-il déjà eu ce pb?

Merci d'avance pour vos réponse

Picos

Re : MFC et boite de dialogue non modale le 18/06/2004 11:56:21

ymca2003
as tu essayer de faire ShowWindow(SW_SHOW) après la création ?

Re : MFC et boite de dialogue non modale le 18/06/2004 12:09:28

Picospicos

Je viens d'essayer mais ça fait toujours la même chose... en fait lorsque je mets un while(1); juste derriere le Create je vois la fenetre mais evidement je n'ai plus la main sur rien...

Ca donne l'impression que la fenetre disparait parceque une procedure arrive à son terme ou un truc dans le genre.

Re : MFC et boite de dialogue non modale le 18/06/2004 16:55:27

ymca2003
voici ce qu'il faut modifier par rapport au code généré par le classwizard pour une boite modale :

- modifier le constructeur et ajouter une fct Create dans le .h :
CMyDialog();
BOOL Create(CWnd* pParentWnd);

dans le.cpp :
CMyDialog::CDlgAddComponent()
{
}

BOOL CMyDialog::Create(CWnd* pParentWnd)
{
// création de la boîte de dialogue
if(!CDialog::Create(CMyDialog::IDD, pParentWnd))
return FALSE;
return TRUE;
}

créer en appelant Create et pas Domodal.

l'objet CMyDialog ne doit pas être local à une fonction mais global (ou alors membre d'une classe) -> ça doit être ça ton pb en fait.

la destruction se fait en appelant DestroyWindow sur l'objet

surcharger OnOK et OnCancel, ne pas Apper CDialog::OnOK() ou CDialog::OnCancel() mais DestroyWindow (ou bien simplement masquer le dialogue par ShowWindow(SW_HIDE) pour que l'appli n'est pas a créer à chaque fois le dialogue pour l'afficher.

il suffit de crrer le dialogue au début du prog, de l'afficher en faisant ShowWindow(SW_SHOW), d'appeler ShowWindow(SW_HIDE) u lieu de le détruire. A la fin du prog, faire le DestroyWindow


Classé sous : pb, boite, mfc, dialogue, modale

Participer à cet échange

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS