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); .... }
|