怎样在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使用呢?
在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使用呢?
CYourDoc* pDoc = GetDocument();
pDoc->pk;不知道你所谓通过Doc类函数传递是什么意思
CYourDoc* CYourView::GetDocument()
它可以直接得到DOC的指针,然后操作就行了
也可以自定义消息在OnNewFile()SenMesage,把PK作为消息参数发给view,然后在转换成MYDATA的指针。
不好意思,基本功不够,要在实践中恶补,呵呵
就是让DOC类的某个函数返回pk值,再在VIEW类中调用该函数,
哈哈,想法怪异吧?是以我要多问多学
在类外定义
MYDATA *pk;在view的cpp文件用 extern MYDATA *pk;
就可以在view类中使用pk或者比较合适的办法是
在doc新增一个函数
MYDATA* CMyDoc::GetMydata() const
{
return pk;
}在View中
CMYDATA pk = GetDocument()->GetMydata();
最好把结构单独定义在一个文件头文件中
比如mydefeine.h#if !define(MYDATASTRUCT)
#define MYDATASTRUCT
typedef struct tagMYDATA{
………………
}MYDATA;
#endif然后在Doc和View中include这个文件