Click here to Skip to main content
15,663,136 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
QuestionCalling Funciton of Other class Pin
Mohibur Rashid25-Jun-11 23:28
professionalMohibur Rashid25-Jun-11 23:28 
AnswerRe: Calling Funciton of Other class Pin
Richard MacCutchan26-Jun-11 2:30
mveRichard MacCutchan26-Jun-11 2:30 
GeneralRe: Calling Funciton of Other class Pin
Mohibur Rashid26-Jun-11 2:54
professionalMohibur Rashid26-Jun-11 2:54 
GeneralRe: Calling Funciton of Other class Pin
Richard MacCutchan26-Jun-11 5:16
mveRichard MacCutchan26-Jun-11 5:16 
GeneralRe: Calling Funciton of Other class Pin
Mohibur Rashid26-Jun-11 12:15
professionalMohibur Rashid26-Jun-11 12:15 
AnswerRe: Calling Funciton of Other class Pin
Niklas L26-Jun-11 3:52
Niklas L26-Jun-11 3:52 
GeneralRe: Calling Funciton of Other class Pin
Mohibur Rashid26-Jun-11 4:11
professionalMohibur Rashid26-Jun-11 4:11 
AnswerRe: Calling Funciton of Other class Pin
Stefan_Lang27-Jun-11 1:57
mveStefan_Lang27-Jun-11 1:57 
What you need is a 'Callback' mechanism, i. e. a way to tell your main window that something changed. The main point here is that whoever noticed or caused the change should not decide what to do about it - in this case call the ReEditTreeControl function.

You can implement a callback mechanism like this:
// file IDocumentStateCallback.h
class IDocumentStateCallback { // prefix 'I' indicates this is supposed to be an abstract interface
public:
   virtual void OnDocumentChanged()=0;
   // add other callback functions for different types of state changes if you like)
}

// file MainWnd.h
class MainWnd : public CWnd, IDocumentStateCallback {
private:
   void OnDocumentChanged(); // for the interface; doesn't need to be public
// ...
};

// file MainWnd.cpp
void MainWnd::OnDocumentChanged() {
   ReEditTreeControl();
}

// file InsertEdit.h
class CInsertEdit: public CWnd {
   class IDocumentStateCallback* parent;
   void OnSave();
// ...
};

// file InsertEdit.cpp
#include "IDocumentStateCallback.h"
#include "InsertEdit.h"

void CInsertEdit::Create(CWnd* p, /* ... */) {
   parent = dynamic_cast<IDocumentStateCallback*>(p);
// ...
}
void CInsertEdit::OnSave() {
   p->OnDocumentChanged();
}

As you can see the callback mechanism prevents the cyclic dependency, since you now only refer to the interface class rather than the main window class. You can also easily add more kinds of state changes and implement the reaction to each change inside your main window class, rather than in any of the other dependent classes.
QuestionHelp With SetTimer in C++ 6 Pin
Member 801201325-Jun-11 6:33
Member 801201325-Jun-11 6:33 
AnswerRe: Help With SetTimer in C++ 6 Pin
«_Superman_»25-Jun-11 6:54
professional«_Superman_»25-Jun-11 6:54 
GeneralRe: Help With SetTimer in C++ 6 Pin
Member 801201325-Jun-11 7:01
Member 801201325-Jun-11 7:01 
AnswerRe: Help With SetTimer in C++ 6 Pin
Richard MacCutchan25-Jun-11 21:23
mveRichard MacCutchan25-Jun-11 21:23 
GeneralRe: Help With SetTimer in C++ 6 Pin
Member 801201326-Jun-11 5:31
Member 801201326-Jun-11 5:31 
GeneralRe: Help With SetTimer in C++ 6 Pin
Richard MacCutchan26-Jun-11 5:42
mveRichard MacCutchan26-Jun-11 5:42 
GeneralRe: Help With SetTimer in C++ 6 [modified] Pin
David Crow27-Jun-11 3:19
David Crow27-Jun-11 3:19 
GeneralRe: Help With SetTimer in C++ 6 Pin
Member 801201327-Jun-11 4:30
Member 801201327-Jun-11 4:30 
AnswerRe: Help With SetTimer in C++ 6 Pin
enhzflep25-Jun-11 21:57
enhzflep25-Jun-11 21:57 
GeneralRe: Help With SetTimer in C++ 6 Pin
Member 801201326-Jun-11 6:02
Member 801201326-Jun-11 6:02 
GeneralRe: Help With SetTimer in C++ 6 Pin
enhzflep26-Jun-11 13:12
enhzflep26-Jun-11 13:12 
QuestionHow tcp socket works for read & write both on same port? Pin
rahul.kulshreshtha23-Jun-11 23:34
rahul.kulshreshtha23-Jun-11 23:34 
AnswerRe: How tcp socket works for read & write both on same port? Pin
Code-o-mat24-Jun-11 0:25
Code-o-mat24-Jun-11 0:25 
GeneralRe: How tcp socket works for read & write both on same port? Pin
rahul.kulshreshtha24-Jun-11 1:15
rahul.kulshreshtha24-Jun-11 1:15 
GeneralRe: How tcp socket works for read & write both on same port? Pin
Code-o-mat24-Jun-11 1:20
Code-o-mat24-Jun-11 1:20 
GeneralRe: How tcp socket works for read & write both on same port? Pin
CPallini24-Jun-11 1:57
mveCPallini24-Jun-11 1:57 
AnswerRe: How tcp socket works for read & write both on same port? Pin
David Cunningham24-Jun-11 5:52
cofounderDavid Cunningham24-Jun-11 5:52 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.