怎样在MFC框架的多文档程序中由DOC类向VIEW类传递指针?设想是:
在DOC类中,声明一个指向MYDATA 结构的指针 pK
并在新建文档的时候,给pk 分配5000个MYDATA的内存空间
Doc.h
…………
{
………………
public:
typedef struct tagMYDATA{
 
                       ………………
                          }MYDATA;        //DOC类中,声明一个指向MYDATA 结构
MYDATA *pk;            //指向MYDATA 结构的指针 pK}在OnNewFile()   
{
  pk =new MYDATA[5000];//在OnNewFile()中分配5000个MYDATA的内存空间
}我想通过DOC类的函数传递,可是却报错说“不是DOC类的静态成员函数”究竟怎样将指针pk传递给对应的View使用呢?

解决方案 »

  1.   

    在你的View中用下面得代码可以在View中获得pk指针,
    CYourDoc* pDoc = GetDocument();
    pDoc->pk;不知道你所谓通过Doc类函数传递是什么意思
      

  2.   

    View 类中有一个函数
    CYourDoc* CYourView::GetDocument()
    它可以直接得到DOC的指针,然后操作就行了
      

  3.   

    如果是想Doc主动让view获得指针,你可以把pk定义为全局变量,这样就可以在View直接访问。
    也可以自定义消息在OnNewFile()SenMesage,把PK作为消息参数发给view,然后在转换成MYDATA的指针。
      

  4.   

    把pk定义为全局变量,这样就可以在View直接访问。///////////具体怎样声明pk呢?
    不好意思,基本功不够,要在实践中恶补,呵呵
      

  5.   

    通过Doc类函数传递是什么意思///////////
    就是让DOC类的某个函数返回pk值,再在VIEW类中调用该函数,
    哈哈,想法怪异吧?是以我要多问多学
      

  6.   

    定义成全局变量
    在类外定义
    MYDATA *pk;在view的cpp文件用 extern MYDATA *pk;
    就可以在view类中使用pk或者比较合适的办法是
    在doc新增一个函数
    MYDATA* CMyDoc::GetMydata() const
    {
        return pk;
    }在View中
    CMYDATA pk = GetDocument()->GetMydata();
      

  7.   

    不过你要让View知道MYDATA的结构定义。
    最好把结构单独定义在一个文件头文件中
    比如mydefeine.h#if !define(MYDATASTRUCT)
    #define MYDATASTRUCT
    typedef struct tagMYDATA{
     
                           ………………
                              }MYDATA;
    #endif然后在Doc和View中include这个文件