begin process at 2012 05 30 02:02:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

MFC

 > 

Probleme avec une dialog box modale


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme avec une dialog box modale

mercredi 25 octobre 2006 à 00:35:11 | Probleme avec une dialog box modale

solidsnake88

Bonjour à tous.



APrès une journée passé sur le problème je me résoud à vous en faire part. J'ai une Dialog Box (DB) que je rempli de bouton et patati et patata pas de problème avec vc++ ca va trés vite. Enfin un bon point pour Visual que je suis en train de découvrir. Puis je créé une autre DB (appelons la CTest)avec le super menu insérer dialog je lui superpose une classe. Je fais la "substituion" de OnInitDialog et je crée cette fenêtre à partir de ma fenêtre principale avec la ligne :

CTest fenetre; //Creation

fenetre.DoModal();

Là encore tout va bien. Et la arrive le problème je veux recuperer des valeurs qui sont dans la boite de dialogue. D'apres ce que je pense j'ai plusieurs possibilités. La premiere avoir des menbres publics et y faire reference dans la boite mere mais c'est pas tres bien au niveau du cloisenement du code. J'ai alors pensé a faire des getters pour recuperer les variables. Et en fait tout marche pour les variables style int i... Mais par contre je ne peut pas appeller dans un de ces getters la fonction this->GetWindowRect(). Je tombe invariablement sur une erreur me disant que le fichier afxwin2.inl possede une assertion qui ne passe pas a la ligne 105. Avoir de plus pres il y a une ASSERT qui test et qui dit que ma fenetre n'a pas de handle. Alors que cette meme fonction getwindowrect fonctionne parfaitement lors de l'initDialog..... Est ce que lorsque je clic sur ok le this est detruit et donc ca plante? Mais alors pourquoi peut on encore acceder au variable depuis la fenetre principale en faisant fenetre.variable; . Conclusion : comment faire pour recuperer ses coordonnees.

Voila, merci pour les eventuelle reponses.




mercredi 25 octobre 2006 à 01:55:29 | Re : Probleme avec une dialog box modale

yann_lo_san

Réponse acceptée !

Pourquoi ne passes tu pas une structure quelconque a ton contructeur
de dlg, pour ensuite la récupérer a la fin, genre

CTest fenetre;

fenetre.DoModal(&struct_quelconque);

Dans l'event OK du modal, tu rempli la struct, et tu la récupère a la sortie de doModal.

Sinon les dialog non modale font l'affaire grace à enableWindows(SW_HIDE et SW_SHOW)

mercredi 25 octobre 2006 à 08:51:20 | Re : Probleme avec une dialog box modale

louis14

Réponse acceptée !
Après avoir cliquer sur OK, la fenêtre se ferme et le handle disparait; par contre l'objet existe. Ceux sont les handles des contrôles qui n'existent plus, dans initdialog tous les handles des contrôles existent.
La solution proposée ci-dessus est bonne sauf que DoModal en VC++ ne prend pas de paramètres. Il faut ajouter le pointeur de ta structure à ta boite de dialogue.

louis14
mercredi 25 octobre 2006 à 11:06:17 | Re : Probleme avec une dialog box modale

solidsnake88

Effectivement je pense utiliser une structure que je vais passer a mon constructeur. Oui en fait c'est une bonne idee. Merci beaucoup.


Et merci a toi roi soleil tu m'as ECLAIRE sur le sujet. Vraiment merci a vous.
mercredi 25 octobre 2006 à 11:10:20 | Re : Probleme avec une dialog box modale

solidsnake88

Et juste un tout petit petit bemol. Quand louis14 tu dis que je dois rajouter le pointeur de ta structure a la boite de dialogue... Concretement ca veux dire quoi? C'est peut etre tres simple mais je ne veux pas passer a cote de quelque chose de clean en faisant ma grosse merde qui fait la meme chose.


Merci a vous deux.
mercredi 25 octobre 2006 à 11:12:00 | Re : Probleme avec une dialog box modale

solidsnake88

Pour moi ma grosse merde c'etait que dans ma boite de dialogue j'avais une veraible menbre de type structure et je la recuperais par un des getters. C'est de la merde ou ca va?

mercredi 25 octobre 2006 à 22:37:43 | Re : Probleme avec une dialog box modale

yann_lo_san

En gros, MFC crée une classe de dlg
CMaDlg : public CDialog
{
  // .ctor
   CMaDlg(STRUCT& s) { m_pUneStruct = &s };
  // membre
  STRUCT* m_pUneStruct;
}

// dans le OnOK, tu la remplis
m_pUneStruct->var = CeQueTuVeux;


// et a la Creation de ta dlg
STRUCT maStruct
CMaDlg dlg(maStruct);
dlg.doModal();

// ICI tu peux utiliser maStruct avec les valeurs remplies dans CMaDlg



Cette discussion est classée dans : problème, recuperer, fenetre, box, dialog


Répondre à ce message

Sujets en rapport avec ce message

dialog box et couleur [ par Xs ] salut !il se trouve que j'ai une fenetre (ressource) que j'inclus par CreateDialog(..), etc..le pb est que ma fenetre est de fond gris : comment est-c Problème de fenetres [ par Toobad ] Salut tout le monde,J'suis un ptit nouveau dans la programmation Win32 et comme on peut s'en douter pour un nouveau, j'ai un tas de problèmes. J'ai fa dialog box avec edit ? [ par pruv3750 ] salutJe travail avec visual studio .net, et j'aimerais savoir s'il existe une fonction pour affichier une boite de dialogue avec un edit box a l'inter Dialog Box !!! Help !!!! [ par Frederyck ] Alores en fait j'ai créer une application basée sur une boite de dialogue, et à l'aide d'une dialogue box non modal je souhaiterai agir sur ma boite d modif forme dialog box [ par alanbraxe31 ] http://membres.lycos.fr/alanbraxe31connaissez vous une fonction, ou un script tout simple permettant de modifier la forme d'une boite de dialogue, en Dialog box et doModal??? [ par machistador ] Bonjour, je cherche à faire une application en dialogue box, ds laquelle j'essaye d'ouvrir des fichiers (en les recherchant par getopenfilename) et la manipuler un fichier depuis une dialog box [ par elroulianito ] salut,j'ai à réaliser une petite appli toute con .Une dialog box avec 2 boutons et 2 edit box1er bouton:OPEN parcour le disque et selectionne un fichi inclure une image dans une dialog box MFC sous VC++6 [ par cartouh ] Bonjour,voila, j'ai mon appli MFC..j'ouvre une DialogBox CVerifDlg VerifDlg;do{AfxMessageBox("Veuillez presenter le truc");Acquisition();}while (!Veri AIDE URGENT [ par krovomite ] Salut,j'ai beau essayer de trouver comment recuperer le handle d'une fenetre en full screen, mais ca ne marche pas du tout, je ne comprends pas...Je v dialog et masque [ par supergrey ] Salut, je voudrais savoir sil est possible de créer une fenetre non rectangle a l'aide d'un masque......sinon comment savoir la taille d'une fenetre(e


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,281 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales