当创建一个对话框类后,若想引用视类中的数据成员,一般的做法是获取视类的指针,获取的方法(之一)为:
CFrameWnd* pFrameWnd = STATIC_DOWNCAST(CFrameWnd, AfxGetMainWnd());
CDreamSpaceView* pView = (CDreamSpaceView*)pFrameWnd->GetActiveFrame()->GetActiveView();
利用这种方法的时候,一般会想到去包含下面这些头文件
# include”Mainfrm.h”
#include”xxxView.h”
但是会出现下列错误:
error C2143: syntax error : missing ';' before '*'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
出现这样的问题是由于没有正确包含头文件造成的:
CxxDoc一定要在CxxView之前声明,否则,编译器无法识别,所以正确的做法是在 #include”xxxView.h”之前加上 #include”xxxDoc.h”。