如何在自定义类中使用View类中的函数?? 如题,在MFC中。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 将View类作为类成员,构造时初始化之,然后调用之。 #include <windows.h>class A{ CView *pView = new CView() pView ->Method();}just do it ,ok 楼上说的方法会出问题的,因为,在MFC中cview,cwinApp,CMainFram,cdoc这些对象在运行时己经初始化好了,如果在刚才的类中声明一个对象,那么就会倒置MFC自动初始化的对象,与自己声明的对象不同.程序运行得不到所要的结果. 如果是单文档的程序可以用以下方法得到MFC的CView对象 比如说你的类是如下: #include "PanelBuilderView.h" class A { int a(int,int) { //这里得到MFC例化的CVIEW对象,然后调用函数CPanelBuilderView*是强制转换指针的作用 ((CPanelBuilderView*)(((CMainFrame*)(AfxGetApp()->m_pMainWnd))->thefunction(); } }; 如果你的是多视图的话,那么这样做 ((CPanelBuilderView*)(((CMainFrame*)(AfxGetApp()->m_pMainWnd))->m_SpliterWnd).GetPane(0,1))-> thefunction(); 因为多视图用到了分割窗体,用GetPane(0,1)得到是哪一个窗体,再转换即可,注意把CMainFrame里的m_SpliterWnd 换成公有成员,才可以访问,这样才不会出问题, 注意对象不同,内存空间不同,很容易出现问题. 如何写单击叶节点响应的函数 VC版块只有四个小版主合格!!! 关于ActiveX的问题? 怎么在exe文件中嵌入网页 动态创建窗口问题 怎么获得对话框窗口的大小 急 定义:float ddd = 0x1234,在内存当中显示00 A0 91 45为什么? 最简单的问题,有分哦 请教如何将类的实例作为参数传给COM MFC CListCtrl 控件 的使用问题 为什么用抓包工具抓不到呢? 文件内部指针问题
{
CView *pView = new CView()
pView ->Method();
}just do it ,ok
如果在刚才的类中声明一个对象,那么就会倒置MFC自动初始化的对象,与自己声明的对象不同.程序运行得不到所要
的结果.
如果是单文档的程序可以用以下方法得到MFC的CView对象
比如说你的类是如下:
#include "PanelBuilderView.h"
class A
{
int a(int,int)
{
//这里得到MFC例化的CVIEW对象,然后调用函数CPanelBuilderView*是强制转换指针的作用
((CPanelBuilderView*)(((CMainFrame*)(AfxGetApp()->m_pMainWnd))->thefunction();
}
};
如果你的是多视图的话,那么这样做
((CPanelBuilderView*)(((CMainFrame*)(AfxGetApp()->m_pMainWnd))->m_SpliterWnd).GetPane(0,1))->
thefunction();
因为多视图用到了分割窗体,用GetPane(0,1)得到是哪一个窗体,再转换即可,注意把CMainFrame里的m_SpliterWnd
换成公有成员,才可以访问,这样才不会出问题,
注意对象不同,内存空间不同,很容易出现问题.