设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
中问网首页
我的收藏
站长博客
搜索
搜索
本版
帖子
用户
第一问答网
»
论坛
›
中问网
›
问答
›
vc 子窗口怎么调用父窗口的函数和变量啊? ...
返回列表
发新帖
vc 子窗口怎么调用父窗口的函数和变量啊?
[复制链接]
11
|
5
|
2009-6-21 00:15:22
|
显示全部楼层
|
阅读模式
用GetParent()获取父窗口指针。设你主对话框类为CMyDialog.CMyDialog *pDlg = (CMyDialog *)GetParent()->GetParent();pDlg->函数或变量;第一个GetParent()获取的是tab control指针,再通过tab control获取主对话框指针。
回复
使用道具
举报
千问
|
2009-6-21 00:15:22
|
显示全部楼层
1. 首先要在父窗口中定义成public的变量与函数2. 通过指针指向父窗口3. 再进行调用 .像CxxxDlg *pDlg=(CxxxDlg *)AfxGetMainWnd();CxxxDlg *pDlg=(CxxxDlg *)myDlg.GetParent();之类都行, 然后就使用pDlg->myVar pDlg->DoFun()就可以了. 给我个邮件, 我给你写个, 我邮箱:
[email protected]
回复
使用道具
举报
千问
|
2009-6-21 00:15:22
|
显示全部楼层
extern CMainApp theApp;CMainDlg* dlg = (CMainDlg*)theApp.m_pMainWnd;获得主对话框指针就可以调用它的成员的
回复
使用道具
举报
千问
|
2009-6-21 00:15:22
|
显示全部楼层
HWND hParent=::GetParent();CWnd *wndParent=CWnd::FromHandle(hParent);这样可以得到父窗口的指针,剩下的事,看你自己了...我和楼主遇到过同样的问题,一个对话框没法调用它的父窗口,不管是用GetParent(),GetParentOwner(),还是AfxGetMainWnd(),或者AfxGetApp()->m_pMainWnd,都不能获得它的父窗口,这是因为此时对话框占用了程序控制权。我所知的就一种方法:那就是在对话框中定义一个CWnd* m_pParent;在构造函数中保存调用它时的参数CWnd* pParent,m_pParent=pParent;在创建对话框对象时,将父窗口指针传给它,C**Dialog dlg(this)
回复
使用道具
举报
千问
|
2009-6-21 00:15:22
|
显示全部楼层
学指针,就OK了,这是C的特色
回复
使用道具
举报
千问
|
2009-6-21 00:15:22
|
显示全部楼层
主对话框创建子对话框时把this传入,那么在子对话框中就可以得到主对话的指针,那还有什么不能做的呢?
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
千问
主题
0
回帖
4882万
积分
论坛元老
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
积分
48824836
加好友
发消息
回复楼主
返回列表
问答
热门排行