如何使用添加到MFC文档/框架项目的对话框的初始化列表
How to use a initialization list for Dialog that is added to MFC Doc/Frame project
我在MFC文档/框架项目(Single doc,MFC,VC++2010项目)中添加了一个额外的对话框(TestDialog),TestDialog.h文件显示
class CTestDialog : public CDialogEx
{
DECLARE_DYNAMIC(CTestDialog)
public:
CTestDialog(CWnd* pParent = NULL); // standard constructor
virtual ~CTestDialog();
}
然后我添加了以下可变变量,我将在TestDialog.h文件中使用它公用:
BOOL m_x;
long m_Type
TestDialog.cpp文件显示
CTestDialog::CTestDialog(CWnd* pParent /*=NULL*/)
: CDialogEx(CTestDialog::IDD, pParent)
, testdlg(0)
{
}
CTestDialog::~CTestDialog()
{
}
现在我有一个正在为frame/doc文件(在..doc.cpp文件中声明相应的变量decared在.h文件中,运行良好。但每当我想在对话框中撤销相同的东西时,尽管可变变量可以从对话框中访问,但我无法初始化变量值。所以
我想在TestDialog.cpp文件中添加m_x和m_Type的初始化列表
:
m_x(FALSE)
m_Type(0)
我试着在下面添加
CTestDialog::~CTestDialog():
m_x(FALSE)
m_Type(0)
{
}
或
CTestDialog::CTestDialog(CWnd* pParent /*=NULL*/)
:m_x(FALSE),m_Type(0)
: CDialogEx(CTestDialog::IDD, pParent)
, testdlg(0)
{
}
但它们都不起作用,并且初始化列表中的编译器compain只能在构造函数中声明。如何标记此对话框的初始化列表。
您的对话框已经有了一个初始化列表,您只需添加这样的更改:
CTestDialog::CTestDialog(CWnd* pParent /*=NULL*/)
: CDialogEx(CTestDialog::IDD, pParent)
, testdlg(0)
, m_x(FALSE)
, m_Type(0)
{
}
一般语法为:
CSomeClass::CSomeClass() : m_var1(1), m_var2(2), m_var3(3)
{
}
其中,初始值设定项列表在:
之后遵循构造函数的定义,变量名称(本例中为m_var1
等)用逗号分隔,初始值在括号中。与对话框一样,您也可以在初始化列表中包括基类构造函数。
对话框源代码中的布局只是将每个变量放在一个新行上。
相关文章:
- 如何在Qbutton的帮助下更改Q对话框的宽度
- 当对话框被接受时,如何用参数调用槽
- WinAPI 在单击第一个对话框上的按钮控件并销毁第一个对话框后创建第二个对话框
- 如何多次询问来自QML对话框的输入?
- 选择文件对话框错误
- 自定义对话框(源自QDialog)不会关闭(Android)
- 如何在 MFC 对话框中使用 OnDraw
- 在C++中创建文件夹选取器对话框的最简单方法是什么?
- 从资源视图访问对话框时出现问题
- 如何检测窗口当前是否正在运行模式对话框?
- 如何将"new"公共项目对话框与 wxwidget 一起使用?
- 如何在 WTL 项目上添加对话框
- 如果我尝试将对话框从一个项目移动到另一个项目,我是否需要从 rc 文件中复制 DESIGNINFO、对话框信息和AFX_
- 如果我单击对话框中的项目(ListBox、CheckBox等),OnLButtonDown()不会被激发,但如果我单击背
- 如何使用添加到MFC文档/框架项目的对话框的初始化列表
- 混合 mfc 对话框和 mdi 项目的调试版本中崩溃
- C ++中的通用文件对话框和公共项目对话框的主要区别是什么?
- 如何从不同的VS 2013项目中在新的VS 2013项目中使用对话框(资源文件)?
- 当我在win32项目c++应用程序中单击菜单项时,如何编写代码来加载一个特殊的对话框?
- “添加到项目列表”是灰色的Qt项目管理对话框