您的位置:首页 > 其它

框架、文档、视图类之间的调用关系

2007-09-16 21:21 309 查看
1、主框架(CFrameWnd)中访问视图(CView)

CView* GetActiveView() const;

通常定义的视图为CView的派生类,在调用自定义视图对象的方法时

应该这样写:((CMouseKeyView*)GetActiveView())->MyFunc();

2、主框架(CFrameWnd)中访问文档(CDocument)

GetActiveDocument,返回CDocument对象;

3、在视图(CView)中访问文档(CDocument)

inline CMouseKeyDoc* CMouseKeyView::GetDocument()

{return (CMouseKeyDoc*)m_pDocument;}

4、在视图(CView)中访问框架(CFrameWnd)

CFrameWnd* GetParentFrame() const;

5、在文档(CDocument)中访问框架(CFrameWnd)

CWnd* AfxGetMainWnd();

CWnd* AfxGetApp()->m_pMainWnd;

6、在文档(CDocument)中访问视图(CView)

UpdateAllViews

功能:通知所有的视图文档已被修改的信息

原型:

void UpdateAllViews(

CView* pSender, // 要更新的视图指针,如果希望更新所有视

图,将此参数设为NULL

LPARAM lHint=0L, // 包含更改消息的通知

CObject* pHint=NULL // 保管更改消息的对象

}

7、在其他类中访问文档类(CDocument)

CDocument* GetDocument()

{

CFrameWnd* frm=(CFrameWnd*)::AfxGetMainWnd();

ASSERT(frm);

CDocument* pDoc=frm->GetActiveDocument();

ASSERT(pDoc);

ASSERT(pDoc->IsKindOf(RUNTIME_CLASS(CMouseKeyDoc)));

return (CMouseKeyDoc*)pDoc;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: