例如:
class COrigPaneView : public CFormView
{
DECLARE_DYNCREATE(COrigPane)protected:
COrigPane();           // 动态创建所使用的受保护的构造函数
virtual ~COrigPane();public:
enum { IDD = IDD_ORIGNALPANE };
#ifdef _DEBUG
virtual void AssertValid() const;
#ifndef _WIN32_WCE
virtual void Dump(CDumpContext& dc) const;
#endif
#endifprotected:
CMFCTabCtrl m_tabCtrl;
TFColorListCtrl m_listCtrl;

protected:
virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持 DECLARE_MESSAGE_MAP()
public:
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
};如何在另一个对话框类里使用上面COrigPaneView类的红色的变量?
听说可以以下方法获得指针,但我还是不懂,哪个大侠能给个详细的解法么?
CMainFrame *pMain = (CMainFrame *)AfxGetApp()->m_pMainWnd;
COrigPane *pView=(COrigPane *)pMain->GetActiveView();

解决方案 »

  1.   

    1。从该类派生新类。
    2。用_ASM 
      

  2.   

    这个方法是访问public类型的变量,想访问私有类,有个网友公布了方法,你试试,我没这么试:
    class COrigPaneView : public CFormView
    {
    DECLARE_DYNCREATE(COrigPane)friend dialog_class;//加上这句,dialog_class是自己定义的对话框类名protected:
    COrigPane(); // 动态创建所使用的受保护的构造函数
    virtual ~COrigPane();public:
    enum { IDD = IDD_ORIGNALPANE 
    ...
    }
    其实你还可以这么取得私有变量值
    class COrigPaneView : public CFormView
    {
    DECLARE_DYNCREATE(COrigPane)protected:
    COrigPane(); // 动态创建所使用的受保护的构造函数
    virtual ~COrigPane();public:
    enum { IDD = IDD_ORIGNALPANE };
    private:
    int m_a;//兴个简单例子,象CMFCTabCtrl m_tabCtrl;这种类型,可以定义CMFCTabCtrl *m_tabCtrl;指针,这样下面的函数就可以返回这个变量的指针.
    public:
    void SetVslue(int a){m_a=a};
    int GetValue(){return m_a}
    ...
    }
    在对话框里这么引用:
    CMainFrame *pMain = (CMainFrame *)AfxGetApp()->m_pMainWnd;
    COrigPane *pView=(COrigPane *)pMain->GetActiveView();
    pView->SetValue(3);
    int a=pView->GetValue();
      

  3.   

    如果COrigPaneView能改,我一般直接把变量从Protected里面拉到public下,很暴力 呵呵
      

  4.   

    是的把这个变量放在public下,然后用你上面说的指针去找就能用了。也可以把这个变量设为全局的也可以,但尽量少用全局的变量。
      

  5.   

    friend class 就是你需要的