我有一个dialog宣言在一个view里面,我想要从此dialog里面取得view的指针应该怎样做?

解决方案 »

  1.   

    在dlg的函数中:
    C???View* pView = (C???View*)GetParent();
      

  2.   

    这样做有一个问题,即需要在此dialog类里面包含myview类的头文件,
    而此时我已经在myview里面包含了dialog类的头文件,这样重复包含是否有问题?
      

  3.   

    MFC向导用位于文件首尾的#ifdef解决了这个问题。你可以用前置声明,在头文件中
    class C???View;之后就可以声明C???View类型的指针:
    Class C???Dialog:Public CDialog
    {
        C???View* m_pView;
    然后在引用m_pView的实现文件中再包含视图的声明头文件。
    #include "???View.h"
    void    C???View::SomeFUnction()
    {
        C???Dialog dlg;
        dlg.m_pView=this;
        .....
    }