C++ MFC 其他函数获得主对话框指针并使用成员的方法
来源:互联网 发布:js文件怎么写 编辑:程序博客网 时间:2024/06/06 03:25
原创:http://blog.csdn.net/trustbo/article/details/8807163
A.子对话框得到父对话框的方法(此方法也可以帮助其他函数获得主对话框)
1. extern CMainApp theApp;
CMainDlg* dlg = (CMainDlg*)theApp.m_pMainWnd;
获得主对话框指针就可以调用它的成员的
2.主对话框创建子对话框时把this传入,那么在子对话框中就可以得到主对话的指针
3.用GetParent()获取父窗口指针。
设你主对话框类为CMyDialog.
CMyDialog *pDlg = (CMyDialog *)GetParent()->GetParent();
pDlg->函数或变量;
第一个GetParent()获取的是tab control指针,再通过tab control获取主对话框指针。
B.获取对话框的指针--全局变量的使用
假设CMyDialog为对话框类
1.先在CMyDialog.cpp中声明一个全局变量CMyDialog* pDlg;
2在OnInitDialog()的时候,pDlg = this;
3.在别的类使用他的时候,在别的类的Cpp中添加extern CMyDialog* pDlg;
4.pDlg->yourfunction();
C.在使用mfc的时候经常遇到自定义类访问主对话框控件的问题,例如自定义类中的方法要输出一段字符串到主对话框的EDIT控件、控制对话框的进度条等
要在自定义的类中访问主对话框空间,须获得主对话的指针。主对话框的对象在app类的InitInstance()方法中声明。查看app类的cpp文件,在InitInstance()方法中有如下语句:
CAppDlg dlg;
m_pMainWnd = &dlg;
主对话框指针被传给m_pMainWnd 成员,按f12查看其定义,发现m_pMainWnd 是在afxwin.h中声明的成员: CWnd*m_pMainWnd; // main window (usually same AfxGetApp()->m_pMainWnd)
由于MFC中的自定义类会自动包含stdafx.h头文件,且stdafx.h包含afxwin.h,因此根据注释,在自定义类中可以直接使用
AfxGetApp()->m_pMainWnd
来获取主对话框的指针。之后可通过
AfxGetApp()->m_pMainWnd->GetDlgItem( );
来获得要访问的主对话框控件的指针,以对其进行访问。
- C++ MFC 其他函数获得主对话框指针并使用成员的方法
- C++ MFC 其他函数获得主对话框指针并使用成员的方法
- C++ MFC 其他函数获得主对话框指针并使用成员的方法
- C++ MFC 其他函数获得主对话框指针并使用成员的方法
- MFC中获得其他类的指针
- 成员函数指针和其他类型的强制转换,使用一般指针调用成员函数
- 在MFC的单文档里,每个类获得其他类指针的一套方法
- 获得全局函数和成员函数指针的部分traits的方法
- mfc 获取主对话框指针(在全局函数中使用对话框类函数)
- MFC中获得全局指针的方法
- MFC获得各种视图指针的方法
- MFC获得各种视图指针的方法
- MFC获得各种视图指针的方法
- MFC 获得各类指针、句柄的方法
- MFC获得各类指针的方法
- MFC 获得各类指针、句柄的方法
- MFC获得各种视图指针的方法
- MFC 获得各类指针、句柄的方法
- 在VS2010中将CString转换为const char*
- ABAddressBookSave关于保存到通讯录失败的问题
- 镜子中的那个不懂得坚持,容易摇摆的人,能跟你说再见吗
- Spring容器三种实例化对象的方式
- Android基础——拨打电话
- C++ MFC 其他函数获得主对话框指针并使用成员的方法
- 【CSDN云计算俱乐部】九城及携程的Hadoop大数据平台
- 如何让CEdit不可编辑?
- RSS/sitemap系统
- 【转载】Unity学习笔记-关于Unity协同程序的全面解析
- Spring简介包
- vc++ 不同对话框中传递信息的方法(基于自定义消息SendMessage)
- 和双引号添加
- 用java开发一个搜索导航网站