MFC如何在文档(CXXXDoc)类或框架(CMainFrame)类中获得视类(CMyView

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MFC如何在文档(CXXXDoc)类或框架(CMainFrame)类中

获得视类(CMyView

在文档类中只要使用(多文档的,单文档的更简单一点儿) POSITION pos=this->GetFirstViewPosition();//要写在文档类中,在其他类中把this换成文档指针就可以了

while(pos)

{

CView *pView=this->GetNextView(pos);

}

而在框架类中只要选取得文档对象,然后再使用上面的代码

以下是从一个对象得到另一个对象有方面(摘自MFC深入浅出)

从一个对象得到另一个对象的方法

本对象要得到的对象使用的成员函数CDocument对象视列表

GetFirstViewPosition,GetNextView

文档模板GetDocTemplate

CView 对象文档对象GetDocument

边框窗口GetParentFrame

CMDIChildWnd或

CFrameWnd 对象活动视GetActiveView

活动视的文档GetActiveDocument CMDIFrameWnd对象活动文档边框窗口MDIGetActive

在框架类中使用GetActiveView();

在文档类中

(CMainFrame*)(AfxGetApp()->m_pMainWnd))->GetActiveView();

MFC中怎么在CMainFrame下获得View类的指针

使用GetActiveView()函数

MFC中普通类如何获取view类的指针?

在普通类(Generic class)中怎么得到view类的指针?我试过这样: CMainFrame *p=(CMainFrame*)AfxGetMainWnd();

CView *pv=p->GetActiveView();

按照你的用法应该就是可以的!

是不是在这样用时,View还没有创建完成啊,所以pv才是空的。CMainFrame *m_pfm = (CMainFrame*)AfxGetApp()->m_pMainWnd;

...*m_pView = (...*)m_pfm->GetActiveView();

少一句:AfxGetApp()

CMainFrame *p=(CMainFrame*)AfxGetApp()->m_pMainWnd;

CView *pv = (CView*)p->GetActiveView();

楼上的分析在理,楼主理一下函数调用顺序, 别是什么PreCreateWindow或是CXXXApp,CXXXFrame的构造函数,InitInstance 里,模板主窗口都没建完就准备操纵这个CView了

asdfasdf

怎样在MFC中返回类的指针,比如cwin,view类等等!

在CView类中,调用this->GetDocument()得到doc。

在CDocument类中,调用GetFirstViewPosition()和GetNextView()得到所有的view。

在其它类中,一种方法先是把指针传进去,以备调用的时候使用。另外就要用AfxGetApp()得到CWinApp,然后再用GetFirstDocTemplatePosition()和GetNextDocTemplate()得到doc template,然后调用GetFirstDocPosition()和GetNextDoc()得到doc。

如何在OnDraw函数或***Dlg函数中获得View类的指针(this)或整个对话框的指针?

在单文档中你可以采用如下方法:

现在要获得指针的文件开始处包含两个文件:

视图的主框架类头文件,即#include "MainFrm.h"

视图类头文件,即#include "XXView.h"

然后在要访问m_pSet处添加如下语句

CMainFrame* frm=(CMainFrame*)AfxGetApp()->m_pMainWnd; CXXView* pView=(CXXView*)frm->GetActiveView();

pView即View类指针

不过你用this不是更简单吗?

mfc的单文档中从一个视图的treeview类中获取Ctestview产生的视图窗口句柄?

获取单文档框架中的那个视图的窗口句柄。求一段代码。网上查了一下,没弄出来。哪位兄弟有时间写一段。

你说的不明不白的。方法可谓多矣。

可以通过全局对象theApp获得视图指针,然后

视图指针->GetSafeHwnd();获得句柄。

还可以发送自定义消息把句柄发送到指定窗口类。

还可以在你的stdafx.h中定义一个Cview指针,在程序初始化过程使之指向View类,在你的treeview中使用。

还可以自己为treeview类定义方法接收句柄,在调用的时候传入。注意处理好创建顺序问题,否则debug下会出断言错误。

方法真的很多。

如果你没有用到文档/视图结构,单文档是在创框架窗口中创建的。有一个变量m_wndView。这个就是那个句柄了。他是CWnd派生的。

如果你用到了文档/视图结构,直接GetActiveView就可以。

还有一种情况,如果你用了切分窗口。。。。。。。

忘了哪个函数了。Get***Pane好像。。查一下便知。

mfc单文档Ctestview产生的视图窗口初始标题如何获取?

你可以在资源文件里修改字符窜,具体怎么修改上网查,

另外一个方法是在view类的PreCreateWindow函数里return之前加入

相关文档
最新文档