MFC自定义类访问主窗口控件
来源:互联网 发布:领导干部网络培训 编辑:程序博客网 时间:2024/05/17 07:55
在使用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获取主对话框指针。
获取对话框的指针--全局变量的使用
假设CMyDialog为对话框类
1.先在CMyDialog.cpp中声明一个全局变量CMyDialog* pDlg;
2在OnInitDialog()的时候,pDlg = this;
3.在别的类使用他的时候,在别的类的Cpp中添加extern CMyDialog* pDlg;
4.pDlg->yourfunction();
- MFC自定义类访问主窗口控件
- MFC中自定义类访问主对话框控件
- MFC中自定义类访问主对话框控件
- MFC中自定义类访问主对话框控件
- MFC中自定义类访问主对话框控件
- MFC中自定义类访问主对话框控件
- MFC自定义类访问主对话框控件(查了好久)
- MFC中自定义类访问主对话框控件
- 自定义类获取主窗口控件引用
- 如何在mfc中通过线程向主窗口发送数据或者是访问控件
- MFC 自定义非窗口类控件中实现 ON_COMMAND 和 ON_UPDATE_COMMAND_UI
- 自定义MFC中的选项卡窗口控件CCoolTabCtrl
- MFC模态对话框和非模态对话框及副窗口调用主窗口控件 自定义消息发送
- MFC控件自适应窗口大小类
- 在MFC中使用自定义窗口类
- 在MFC中使用自定义窗口类
- 如何自定义MFC的窗口类名
- MFC 为对话框窗口自定义基类
- Cocos2d-x3.1中使用万普平台实现Android平台广告添加
- OAuth 2.0
- 线程锁的概念函数EnterCriticalSection和LeaveCriticalSection的用法
- C语言——指针的运算
- poj 3071 Football 概率dp
- MFC自定义类访问主窗口控件
- C++ 虚函数表解析
- Python的常见配置工具
- 《过好每一天》综合唯识论的基本原理
- Mmap Internals
- 郑石岩教授,中国台湾政治大学教育学硕
- Android LayoutInflater原理分析,带你一步步深入了解View(一)
- 笔记1.2---计算机网络的主要性能指标
- Android 最常用的快速开发工具类