从应用程序类访问 Dlg 类中的变量
Access variable in Dlg class from App class
我正在编写一个基于对话框的C++应用程序,其中包含用于GUI的MFC。在项目创建之后,Visual Studio还创建了两个类ProjectNameApp
和ProjectNameDlg
。将 Menu 添加到我的应用程序时,菜单项处理程序(用于菜单按钮)将作为方法添加到 ProjectNameApp
类中。在其中一个处理程序中,我想访问 ProjectNameDlg
类的变量,更具体地说,CComboBox
.但这当然是不可能的。所以我有两个问题:
-
有没有办法从 Dlg 类访问
CComboBox
变量? -
如果没有,如何将 Menu 处理程序移动到 Dlg 类以直接使用
CComboBox
变量?
此外,我的应用程序必须基于对话框,并且必须具有菜单。
我最后一次处理这些问题是在VS-2008中,但如果内存服务,CDialog对象可能会在CProjectNameApp::InitInstance()中的堆栈上分配。 那里可能有一些代码看起来像:
CProjectNameDlg dlg;
int nResponse = dlg.DoModal();
您可以做的一件事是添加指向对话框的指针作为 ProgramNameApp 类的成员。因此,在ProgramNameApp.h中添加一个数据元素,如下所示:
std::tr1::unique_ptr<CProjectNameDlg> m_pDlg;
然后将 CProjectNameApp::InitInstance() 中的代码更改为:
m_pDlg = std::tr1::unique_ptr<CProjectNameDlg>(new CProjectNameDlg());
int nResponse = m_pDlg->DoModal();
当然,您必须注意dlg
的任何其他用途并相应地更改它们。
相关文章:
- 从不同C++类的成员变量访问成员函数
- 在主函数中C++私有变量访问
- 互锁变量访问(在布尔值上)和 std::atomic_flag 之间的区别
- C++中的变量访问内联函数
- 无法使用子类变量访问超类公共成员
- 优化成员变量访问
- Ifstream:打开可使用变量访问的文件
- 使用'this->'成员变量访问的性能
- 从成员变量访问静态 constexpr 成员,GCC 错误?
- TLS变量访问的结果未缓存
- 通过const成员变量访问内联函数
- 获取通过环境变量访问的文件的位置
- 静态变量访问
- 从函数变量访问结构变量的成员
- 从另一个变量访问变量
- 使用变量访问结构中的任何数据
- 如何使用另一个变量访问对象的变量/方法
- 使用用户变量访问结构的成员?C++
- 我需要通过基类静态变量访问派生类成员
- 如何将一个文件中存在的全局常量变量访问到另一个文件