一直以来我没有系统的把23种设计模式一口气看完,总是用到时上网查一查。没来得及去思考,总结这23种设计模式,于是在理解mfc框架时总是不能得心应手,实在是痛苦不堪。今天在研究麻将时,建立一个sdi的工程,于是把这个框架粗略的研究了一番。
大致有下面这些心得:
建立SDI向导的过程中,vc6.0为我们做了下面这些事情:
1.new了DOC,FRAME,VIEW三个对象
2.创建了FRAME,VIEW两个窗口
3.将FRAME对象地址保存到APP对象中,将DOC对象地址保存到VIEW对象中,将VIEW对象地址插入到DOC对象里面的一个表中,将VIEW对象地址保存到FRAME对象里面.向导产生对象使用RUNTIME_CLASS来动态创建的,其实就是new了一下。
这里在贴出几个具有重要意义的类结构, 我抽取精华部分贴上来:
class CView : public CWnd
{
public:
CDocument* GetDocument() const;
protected:
CDocument* m_pDocument;
friend class CDocument;
friend class CDocTemplate;
}
class CDocument : public CCmdTarget
{
protected:
CDocTemplate* m_pDocTemplate;
}
太忙了,先把CView 与相关的CDocument 的部分贴出来,至于doc/view/frame其它部分以后再写。