C++ MFC 其他函数获得主对话框指针并使用成员的方法
2013-04-16 09:37
627 查看
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.获取对话框的指针--全局变量的使用
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( );
来获得要访问的主对话框控件的指针,以对其进行访问。
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(); |
要在自定义的类中访问主对话框空间,须获得主对话的指针。主对话框的对象在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++成员函数指针的使用方法
- C++成员函数指针的另类调用方法
- 使用纯C函数指针调用C++的类成员函数
- mfc 获取主对话框指针(在全局函数中使用对话框类函数)
- C++里,在类中使用指向类成员函数的指针
- C++静态成员变量和静态成员函数的使用方法总结
- 使用类成员函数指针调用C++成员函数的一种方式
- 类的成员函数指针的使用方法
- 成员函数指针和其他类型的强制转换,使用一般指针调用成员函数
- C++使用模板、函数指针、接口和lambda表达式这四种方法做回调函数的区别比较
- c++中函数指针的使用方法
- [c++] 函数指针和函数指针数组的使用方法
- 获得全局函数和成员函数指针的部分traits的方法
- 【C/C++】类成员函数地址的获取及使用方法
- 类的成员函数指针的使用方法
- 在MFC的单文档里,每个类获得其他类指针的一套方法
- C++ Queues(队列)成员函数及其使用方法
- 如何使用c++的成员函数指针
- C++中,如何定义和使用指向成员函数的指针