CMainFrame访问Cview的成员

whb603 2006-02-26 12:43:14
单文档视图结构,在CMainFrame需要访问Cview的成员,
我这样做:
CFrameWnd* pMain = (CFrameWnd*) AfxGetMainWnd();
CFrameWnd *pChild = (CFrameWnd *) pMain->GetActiveView();
但得到的是标准的view。

我想把第二句改为
CmyView *pChild = (CmyView *) pMain->GetActiveView();
而当#include"myview.h"的时候编译出错。

到底该怎么做呢?
...全文
124 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
psbeond 2006-02-27
  • 打赏
  • 举报
回复
对,加上文档头文件就行了。
syy64 2006-02-27
  • 打赏
  • 举报
回复
还得加上文档头文件。
whb603 2006-02-27
  • 打赏
  • 举报
回复
果然可以!谢谢二位!
psbeond 2006-02-26
  • 打赏
  • 举报
回复
你可以在CMainFrame中定义各个view的指针,然后在view初始化的时候,把自己的this指针赋值给CMainFrame中代表自己的那个指针,因为CMainFrame的指针在任何地方都可以用AfxGetMainWnd得到,所以各个视的指针也就可以在任何地方调用了。
syy64 2006-02-26
  • 打赏
  • 举报
回复
试试
CmyView *pChild = (CmyView *) ((CFrameWnd *)pMain)->GetActiveView();
whb603 2006-02-26
  • 打赏
  • 举报
回复
自己顶!
herman~~ 2006-02-26
  • 打赏
  • 举报
回复
关注
whb603 2006-02-26
  • 打赏
  • 举报
回复
两位说的办法都不错,问题是我在MainFrm.cpp中只要加入#include "myView.h",

一编译就会出现:error C2143: syntax error : missing ';' before '*',

这个错误的位置在"myView.h"中的CmyDoc* GetDocument();,

可这行代码是自动生成的啊

15,975

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧