我写了一个控件类
Class CMyCtrl:public COleControl
{
...
public: 
int  m_nTest;
CMyWnd  m_wnd;
}CMyWnd : public CWnd
{
}我要在CMyWnd中,访问m_nTest,无论用函数,还是直接访问,都不行,会出现无法访问的错误。但编译没有错误,我想是不是控件类有什么规定,不能这样访问,没找到资料,了解的请帮忙提示一下,谢谢!

解决方案 »

  1.   

    一个方法:
    在创建CMyWnd时将m_nTest的指针传进去,如:
    Class CMyCtrl:public COleControl
    {
    ...
    public:
    int  m_nTest;
    CMyWnd  m_wnd;
    }CMyWnd : public CWnd
    {
    int*  ipTest;
    } 调用:
    m_wnd.ipTest = &m_nTest;
    或使用构造函数赋值。
      

  2.   

    得到当前CMyCtrl的实例的指针先
      

  3.   

    如果,楼主只想获得m_nTest这个,不为以后扩展的话,直接在CMyWnd 加个接口SetWndTest(int nTest)好了,这样也不必吧m_nTest设置成公有的了。
    但是要是扩展的话,还是用2楼的获取实例指针吧,不过这个还是需要点技巧的,要写个中间代理类。
      

  4.   

    可以得到实例,编译没有问题,访问的时候出现崩溃,
    也 写了# spring203  所说的函数,问题同样存在,好像CMyCtrl的函数和属性根本不让访问一样。
      

  5.   

    得到CMyCtrl的实例以后,如果不访问方法和属性,一切正常。
      

  6.   

    Class CMyCtrl:public COleControl 

        friend class CMyWnd;
    ... 
    public: 
    int  m_nTest; 
    CMyWnd  m_wnd; 
    } CMyWnd : public CWnd