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 : CDialog et CView [ Archives / Au secours ] (GEDEON)

lundi 20 février 2006 à 12:40:16 | CDialog et CView

GEDEON

Bonjour à tous....

    J'ai un CDialog ouvert en DoModal() par un CView... j'aimerais savoir si je peu créer un évenement dans mon CDialog qui redéssinerais le CView....(tout en laissant le CDialog ouvert)

Merci de votre bonté divine....

Gedeon

lundi 20 février 2006 à 22:41:09 | Re : CDialog et CView

AlexN

Réponse acceptée !
1) CView.h

Dans la MESSAGE_MAP de ta classe CView, tu déclares un nouveau message, auquel tu associes le nom de son gestionnaire (handler)

BEGIN_MESSAGE_MAP(CShapesView, CView)
    ON_MESSAGE(WM_USER_CHANGE_OBJECT_PROPERTIES, OnChangeObjectProps)
    //{{AFX_MSG_MAP(CShapesView)
    ON_WM_LBUTTONDOWN()
...
    //}}AFX_MSG_MAP
END_MESSAGE_MAP()

2) CView.c

Dans la liste des gestionnaires de messages de ta classe CView, tu déclares le gestionnaire du nouveau message

// Generated message map functions
protected:
    //{{AFX_MSG(CShapesView)
    afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
...
    //}}AFX_MSG
    
afx_msg LRESULT OnChangeObjectProps(WPARAM wParam, LPARAM lParam);
    DECLARE_MESSAGE_MAP()
};


3) CView.c

Tu construit ton gestionnaire de message pour que la CView modifie ses membres, ou leur communique un signal

LRESULT CMyView::OnChangeObjectProps(WPARAM, LPARAM)
{
    // The user-defined WM_USER_CHANGE_OBJECT_PROPS message is sent
    // by the modal CModalShapePropSheet when the user chooses Apply Now,
    // or by the modeless CModelessShapePropSheet when the user
    // changes any setting in a property page.

     // Appliquer les modifications aux membres de la CView
     .....

    GetDocument()->SetModifiedFlag();
    GetDocument()->UpdateAllViews(NULL);
    return 0;
}

4)  CDialog.c

Dans ta classe CDialog, tu construit un bouton que tu relies à la fonction OnApply
qui va elle envoyer le message à la CView.

void CMyDialog::OnApply()
{
    CView* pView = ...->GetActiveView();
    pView->SendMessage(WM_USER_CHANGE_OBJECT_PROPERTIES, 0, 0);
   ....
}






Cette discussion est classé dans : cdialog, ouvert, cview


Répondre à ce message

Sujets en rapport avec ce message

pointeur sur CDialog a partir de CView [ par stremblay77 ] Bonjour Comment faire pour obtenir un pointeur sur une classe dérivée de CDialog à partir d'une classe dérivée de CView ou de CRichEditView... SVP bes CDialog dans barre des taches [ par lauce ] Voila, j'ai un p'tit probleme. j'ai récuperer le code d'une fenetre qui était fenetre principale dans une autre application. Cette fenetre est mainten ShellExecute : savoir quand le programme est ouvert [ par glipper ] Bonjour,J'ouvre à l'aide de ShellExecute() un editeur de texte et lui demande de lire un fichier, mais je voudrais savoir quand il a fini de lire le f SOS CDialog [ par GUERRIER_ABSOLU ] Bonjour. Je ne connais pas MFC; Et j'essaie d'en apprendre les rudiments pour implanter en C++ (Visual studio 6) une petite partie d'un travail dont l fichier xls ouvert avec windows.h [ par ancat ] Salut Es ce que je peux recuperer le contenu d'un tableau excel en vc++?J'arrive a recuperer le contenu d'un fichier texte mais avec excel je ne recup CDialog back color [ par indusine ] Bonjour! Je voudrais changer la couleur de l'arriere plan des fenetres dans une application MFC .Les fenetres sont dérivée de la classe CDialog.Il y a OLE Fenetre Serveur dans une fenetre client [ par funxav ] Bonjour,J'ai fait un serveur exe automation MFC (modèle Dialog).La classe qui m'intéresse dans ce serveur est un CDialog.J'ai fait un client MFC qui c Serveur SMTP Relais ouvert [ par deadbird ] J'aimerai savoir si l'un d'entre vous connais un relais SMTPouvert... dans une SDI [ par catamenia ] bonjours,Comment récupère ton la CView attaché a un CDocument dans une SDI?Je c'est que a partir de la CView on peut faire un GetDocument() pour avoir programme deja ouvert ? [ par barraq ] Salut,voila je developpe un programme, et j'aimerais empecher l'utilisateur de l'ouvrir plusieur foi...Genre quand il double clique sur l'icone du sof


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.