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

  FORUM HardWare.fr
  Programmation
  C++

  mfc cdialog

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

mfc cdialog

n°1332134
zabrat
Posté le 25-03-2006 à 15:40:59  profilanswer
 

comment recuperer le dernier etat des bouttons apres la reouverture d'1 boite de dialogue(je ferme 1 boite de dialog (retour a la page precedente Onok() )donts les statuts de ses boutton ont changés et quand je l'appelle a nouveau (domodal())elle s'affiche avec le statut initial (les modification des boutton n'est pris en charge) que puis-je faire?

mood
Publicité
Posté le 25-03-2006 à 15:40:59  profilanswer
 

n°1332518
slash33
Posté le 26-03-2006 à 17:48:19  profilanswer
 

Mémoriser/restaurer le contexte du dialogue à chaque fermeture/ouverture? Qu'est-ce que tu entends par récupérer l'état des boutons ?

n°1332656
zabrat
Posté le 27-03-2006 à 00:11:27  profilanswer
 

memoriser

n°1332693
slash33
Posté le 27-03-2006 à 09:18:53  profilanswer
 

Gérer une structure ou un objet dans le dialogue. Ajouter une méthode d'initialisation et de récupération de la structure. Installer les valeurs initiales dans le dialogue avant l'ouverture de celui-ci et récupérer les nouvelles valeurs sur OK.
 

Code :
  1. // Déclaration
  2. class DialogData{
  3. public:
  4. DialogData();
  5. private:
  6. CString m_strData1;
  7. ...
  8. friend class ContextDialog; // ContextDialog peut accéder aux membres protégés
  9. };
  10. class ContextDialog : public CDialog
  11. {
  12. public:
  13.    ContextDialog(const DialogData& );
  14.    virtual ~ContextDialog();
  15. private:
  16.    enum { IDD = IDD_CONTEXTDIALOG };
  17.    DialogData m_data; // données du dialogue échangeables par copie
  18. protected:
  19.    void DoDataExchange(CDataExchange* pDX);
  20. public:
  21.    void GetDialogData(DialogData& ) const;
  22. };
  23. // Implementation
  24. ContextDialog::ContextDialog(DialogData& dd)
  25. :m_data(dd), //copie de l'argument
  26. CDialog(IDD)
  27. {
  28. }
  29. ...
  30. void ContextDialog::DoDataExchange(CDataExchange* pDX)
  31. {
  32.    // Echange de données en direct sur les variables facilité par le friend ContextDialog dans DialogData.
  33.    DDX_Text(pDX, IDC_VAR1, m_data.m_strVar1);
  34.    // autres variables à traiter...
  35. }
  36. void ContextDialog::GetDialogData(DialogData& dd) const
  37. {
  38.    // copie des données non réflexive
  39.    if (&this->m_data != &dd)
  40.       dd = m_data;
  41. }
  42. // Code client
  43. DialogData dlgData;
  44. // TODO: initialiser dlgData
  45. ContextDialog dialog (dlgData);
  46. if (dialog.DoModal() == IDOK)
  47. {
  48.    // écrase dlgData avec les nouvelles valeurs modifiées dans le dialogue
  49.    dialog.GetDialogData(dlgData);
  50. }


Message édité par slash33 le 27-03-2006 à 09:32:28

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

  mfc cdialog

 

Sujets relatifs
Appel d'une CDialog en COnDestroy et CDialog non modale... un peu d'aide svp ;-)
onSize : bloquer le resize minimal d'un CDialog ?onSize : bloquer le resize minimal d'un CDialog ? (bis)
afficher une boite de dialogue en plein écran avec CDialog[VC++] Drag and drop d'un fichier sur une CDialog
MFC - Comment CDialog fonctionne !?![MFC] Création dynamique d'un CDialogBar avec le contenu d'un CDialog
[MFC] Insérer un CMenu dans un CDialog [ résolu ][C++] commenf faire pour faire afficher une image + CDIALOG Windows ?
Plus de sujets relatifs à : mfc cdialog


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