查看: 1158|回复: 10

函数调用问题

[复制链接]

该用户从未签到

发表于 2013-1-11 11:38:22 | 显示全部楼层 |阅读模式
本帖最后由 ldj 于 2013-1-11 11:41 编辑

我把MFC_OSG.h MFC_OSG.cpp
拷贝到我的vs2008 sdi工程,view.h包含MFC_OSG.h ,view.cpp实现调用。
MFC_OSG.cpp的 cOSG::InitCameraConfig
  mViewer->setSceneData(mRoot.get());
    mViewer->addEventHandler(new CPickHandler());
我在PickHandler  如何能调用view的函数?
请高手给具体思路。

该用户从未签到

发表于 2013-1-11 11:43:17 | 显示全部楼层
看看c++的书吧

该用户从未签到

 楼主| 发表于 2013-1-11 11:47:55 | 显示全部楼层
你没有仔细研究我的问题
在view.h中#include "MFC_OSG.h"  cOSG* mOSG;
        HANDLE mThreadHandle;
在MFC_OSG.h 中#include "PickHandler.h"

如果在PickHandler.h 直接#include"view.h"
编译 出现很多错误
换成其他方式 也不行
请问大家都是如何解决这个问题的

该用户从未签到

发表于 2013-1-11 11:52:19 | 显示全部楼层
ldj 发表于 2013-1-11 11:47
你没有仔细研究我的问题
在view.h中#include "MFC_OSG.h"  cOSG* mOSG;
        HANDLE mThreadHandle;

还是一样  c++ 多看看     不清楚你为什么要这样设计你的类    但是c++传递参数的方法有很多种 完全可以根据自己的需要去做

该用户从未签到

 楼主| 发表于 2013-1-11 11:57:23 | 显示全部楼层
我试图把MFC_OSG换成自己的类,测试了下 不行
你有啥高招?
说出来大家听听。

该用户从未签到

发表于 2013-1-11 11:58:52 | 显示全部楼层
PickHandler  的handle中可以获得viewer osgGA::GUIActionAdapter

该用户从未签到

 楼主| 发表于 2013-1-11 12:15:16 | 显示全部楼层
我要得到的是view视图类,不是osg的osgViewer::Viewer

该用户从未签到

发表于 2013-1-11 13:25:27 | 显示全部楼层
liuzhiyu123 发表于 2013-1-11 11:58
PickHandler  的handle中可以获得viewer osgGA::GUIActionAdapter

很明显 是他自己的逻辑不清楚

该用户从未签到

发表于 2013-1-11 13:43:46 | 显示全部楼层
wangmingjun 发表于 2013-1-11 13:25
很明显 是他自己的逻辑不清楚

那我潜水了.......已经说得很明白了

该用户从未签到

发表于 2013-1-11 13:56:32 | 显示全部楼层
本帖最后由 woshijiameizhou 于 2013-1-11 13:57 编辑

楼主是否要MFC的CView,而不是OSG的osgView。可以试试在PickHandler.cpp里包含下面头文件(注意包含的先后顺序):
  1. #include "MyDoc.h" //替换lz相应的doc头文件名
  2. #include "MainFrm.h"
  3. #include "MyView.h"//替换lz相应的view头文件名
复制代码
在需要CMyView的地方可以这样:
  1.         CMainFrame *pMain = (CMainFrame *)AfxGetApp()->m_pMainWnd;
  2.         CMyView *pView = (CMyView *)pMain->GetActiveView();
复制代码

该用户从未签到

 楼主| 发表于 2013-1-11 16:46:11 | 显示全部楼层
本帖最后由 ldj 于 2013-1-11 16:46 编辑

问题解决  大家都没有理解我的意思,不过还是谢谢大家的帮助
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表