傻大方


首页 > 学习 >

MFC|MFC类中获得其它类指针_百度文库( 二 )



按关键词阅读: 文库 其它 获得 指针 百度 MFC


当所需的视图是最后一个视图 是最后一个视图类时就如引 。
因此需采用两次判断 。
使用该函 。

9、数应遵循如下格式(以取得CTestView指针为例):CTestView*pTestView=(CTestView*GetView(RUNTIME_CLASS(CTestView;
RUNTIME_CLASS是一个宏 , 可以简单地理解它的作用:将类的名字转化为 CRuntimeClass 为指针 。
至于强制类型转换也是为了安全特性考虑的 , 因为从同一个基类之间的指针类型是 互相兼容的 。
这种强制类型转换也许并不必要 , 但能避免一些可能出现的麻烦 。
字 用63 .从一个视图类取得另一视图类的指针字用8综合1和2,很容易得出视图类之间互相获得指针的方法:就是用文档类作中转 , 先用1的方法得到文档类的指针 , 再用 2 。

10、的方法 , 以文档类的视图定位函数取得另 一个视图类 。
同样 , 可以实现成一个函数:(假设要从CTestAView中取得指向其它视图类的指针)CView*CTestAView:GetView(CRuntimeClass*pClassCTestDoc*pDoc=(CTestDoc*GetDocument(;
CView*pView;
POSITION pos=pDoc-GetFirstViewPosition(;
while(pos!=NULLpView=pDoc-GetNextView(pos;
if(pView-IsKindOf(pClassbreak;
if(!pView-IsKindOf(pClass 字 。

11、用 8return NULL;
return pView;
这个函数和2中的GetView(相比 , 一是多了第一句以取得文档类指针 , 二是在 GetFirstViewPosition(和GetNextView(前加上了文档类指针 , 以表示它们是文档类 成员函数 。
有了此函数;当要从 CTestAView中取得CTestBView的指针时 , 只需如下:CTestBView*pTestbView=(CTestView*GetView(RUNTIME_CLASS(CTestBView;
字用24 .从主帧窗口类获得视图类指针字用5对本文所举的Test这各SDI程序来说 , 这是简单的 , 只需用 CFrameWnd类的 G 。

12、etActiveView(成员函数即可 。
格式如下:CFrameWnd:GetActiveView(但将此函数应用在MDI应用的CMDIFrameWnd为中时 , 并不象所想的那样获得当 前活动子窗口的视图类 , 而是返回 NULL ,这是一个要领性问题 。
在 MDI程序 中 , CMDIFrameWnd没有和任何视图类发生关系 , 也就是说没有视图类直接属于 它 , 只有子帧窗口类CMDIChildWnd才是所有子窗口视图类的父窗口 。
而子帧窗 口的父窗口才是CFrameWnd 。
因此 , 在MDI程序中获得活动视图类的正确方法应 为:先获得活动子帧窗口 , 再从活动子帧窗口中获得活动视图类:/获得活动子帧窗口CMDIChil 。

13、dWnd*pChild=(CMDIChildWnd*GetActiveFrame(;
或:CMDIChildWnd*pChild=MDIGetActive(;
/获得活动子帧窗口的活动视图CMyView*pView=(CMyView*pChild-GetActiveView(;
字用75 .从视图类中获得主帧窗口类指针:字用3用函数:CWnd二GetParentFrame或 AfxGetMainWnd(;
可达到目的 。
GetParentFrame(勺工作原理是在父窗口链中搜索 , 直到找到 CFrameWnd或其派生类为止 , 并返回其指针 。
用法在 InfoViewer中有详细介绍 。
字用36 .在任何类中获 。

14、得应用程序类用MFC全局函数AfxGetApp(可做到 。
字用87 .从应用程序类中获得主帧窗口类CWinThread 类有一个数据成员叫 m_pMainWnd,由于 CWinApp 类由 CWinThread 派生而来 , 我们的应用程序为又由 CWinApp派生而来 , 所以我们的CTestApp类也有一个m_pMainWnd成员 , 它所指南的即是CMainFrame类 。
(需进行合适的 强制类型转册 。
字用1总结起来有几点注意:A.在类A中获得类B的指针时 , 类A应包含类B的头文件 。
8 .在很多时候要进行强制类型转换 , 并要注意括号的括法 。
由于派生类和父类指针类型的兼容 , 使明确区分各个类变得十分重要 。
在拿不准的 时候 , 最好加上强制类型转换 。



稿源:(未知)

【傻大方】网址:/a/2021/0905/0024107193.html

标题:MFC|MFC类中获得其它类指针_百度文库( 二 )


上一篇:怎样|怎样克服紧张情绪方法

下一篇:怎样|怎样与幼儿园家长沟通技巧