Question

J'ai donc un MFC application basée, qui est principalement dérivée de CDialog, avec quelques contrôles etc.

Pour certaines raisons, il doit être hébergé dans une autre application, à l'aide d'une classe conteneur basée sur CView.

Il doit donc y avoir un moyen... d'héberger cette chose, en utilisant CDialog, à l'intérieur d'une classe conteneur, qui attend la chose comme un CView.

La classe conteneur m'est fermée.Il s'attendra à un CView, mais je peux modifier l'application basée sur la boîte de dialogue.

Existe-t-il un moyen simple de migrer depuis CDialog basé sur CView basé, et que devrais-je regarder, s'il vous plaît.Je ne suis pas très doué avec MFC et la question peut sembler vague, mais c'est ce que j'ai.

Toute aide serait appréciée Merci.

Était-ce utile?

La solution

Vous pouvez utiliser un CFormView.Il s'agit d'une vue prenant en charge les modèles de ressources de dialogue.

Le code problématique charge et valide les données dans et depuis CFormView.Les vues sont généralement contrôlées par un CDocument, qui appelle UpdateAllViews avec quelques astuces.

Vos fonctions de dialogue pour OnOK, OnCancel et OnInitDalog doivent être modifiées pour s'adapter à l'architecture Doc/View.

  • Déplacez le code OnInitDialog dans OnInitialUpdate, mais sachez que dans une application SDI, OnInitialUpdate peut être appelé plusieurs fois.
  • OnOK et OnCancel doivent être résolus par certains appels et fonctions du document.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top