社区
界面
帖子详情
关于CWnd::GetActiveView()(很简单)
cbythe
2007-05-13 09:13:41
为什么GetActiveView()的返回值被强制转换后能访问其派生类的成员,难道GetActiveView()返回的指针其实是指向其公有派生类对象的?
请不要简单的回答是或不是,各位高手有没有源代码啊,贴一下啊,先谢了!!
...全文
999
5
打赏
收藏
关于CWnd::GetActiveView()(很简单)
为什么GetActiveView()的返回值被强制转换后能访问其派生类的成员,难道GetActiveView()返回的指针其实是指向其公有派生类对象的? 请不要简单的回答是或不是,各位高手有没有源代码啊,贴一下啊,先谢了!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jordanhall
2010-12-22
打赏
举报
回复
找了半天,终于找到个能用的!!!谢啦!
[Quote=引用 4 楼 gprogram 的回复:]
CFrameWnd::GetActiveView
CView* GetActiveView( )const;
返回值:指向当前CView的指针,如果无当前视图,则返回NULL。
说明:
调用此成员函数获取一个附加给框架窗口(CFrameWnd)的活动视图(如果有)指针。
此函数返回值在一个MDI主框架窗口(CMDIFrameWnd)时为NULL。
在一个MDI应用中,MDI……
[/Quote]
gprogram
2010-04-05
打赏
举报
回复
CFrameWnd::GetActiveView
CView* GetActiveView( )const;
返回值:指向当前CView的指针,如果无当前视图,则返回NULL。
说明:
调用此成员函数获取一个附加给框架窗口(CFrameWnd)的活动视图(如果有)指针。
此函数返回值在一个MDI主框架窗口(CMDIFrameWnd)时为NULL。
在一个MDI应用中,MDI主框架窗口没有与之相关的视图,相反,每个子视图(CMDIChildWnd)都有一个或几个与之相关的视图。MDI应用中的活动视图可先查找活动MDI子窗口,再查找这些子窗口的活动视图。活动MDI子窗口可由调用函数MDIGetActive或GetActiveFrame找到,示例如下:
CMDIFrameWnd* pFrame = (CMDIFrameWnd* )AfxGeteApp( )->m_pMainWnd;
// Get the active MDI child window .
CMDIChildWnd* pChild = (CMDIChildWnd* )pFrame->GetActiveFrame( );
// or CMDIChildWnd* pChild = pFrame->MDIGetsActive( );
// Get the active view attached to the active MDI child windows.
CMyView * pView = (CMyView * ) pChild->GetActiveView( );
返回值是指针,指针本身是同一类型的,只是指向对象的类型不一样而已,GetActiveView返回的也是一个指针,如果有,指针是活动视的MFC类对象的地址,不管它是派生类还是没派生,都是活动视的地址,之所以用派生类进行类型强制转换,是应付编译系统的类型检查.
cbythe
2007-05-14
打赏
举报
回复
自己顶一下,
cbythe
2007-05-13
打赏
举报
回复
强制转换后就可以访问了。
我觉得返回的指针应该就是被派生类对象的地址附值的,见不到源代码不敢确定。。。。
Y___Y
2007-05-13
打赏
举报
回复
GetActiveView()返回的是CView类,但往往CView不包含你自己的派生的View类的中成员,CView当然不能访问派生类的自定义成员
窗口(
CWnd
类)控制 SWF格式
要想通过
CWnd
类控制窗口,必须先取得
CWnd
类(或派生类)的对像或指针。主要方法有四: 一,系统已经定义好的类。 二,自己定义对像,并操作它。 三,利用类向导为控件关联变量(前面已讲,不再详细讲解)。 四,利用...
取得窗口类对像或指针
窗口(
CWnd
类)控制 要想通过
CWnd
类控制窗口,必须先取得
CWnd
类(或派生类)的对像或指针。...四,利用现有函数,如:GetDlgItem、Get
Active
View
、Findwindow。 更多内容见:vcshare.net和http://www.hedanwang.cn/bbs/
MFC常用的类及其成员函数简介
Get
Active
View
(): 得到当前视图的指针。 Set
Active
View
(): 激活一个视图。 GetTitle(): 得到框架窗口的标题。 SetTitle(): 设置框架窗口的标题。 SetMessageText(): 设置状态栏文本。 CDocument类 从CCmdTarget...
C++MFC教程
我很难说得清楚,也很难下一个定义(谁在嘘我),我下面从不同的几个方面讲解一下,希望大家看了后有一点了解。 1、消息的组成:一个消息由一个消息名称(UINT),和两个参数(WPARAM,LPARAM)。当用户进行了输入...
CWnd
::AssertValid()函数执行出错---MFC多线程
1. 问题在修改单线程MFC程序为多线程时,遇到了
CWnd
::AssertValid()函数执行出错问题。主要表现是在执行下面代码中绿色语句时出错点击(此处)折叠或打开#ifdef _DEBUGvoid
CWnd
::AssertValid()const{if(m_hWnd==NULL)...
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章