C ++ MFC整数文本字段始终设置为0?

时间:2011-06-02 12:44:13

标签: c++ visual-c++ mfc initialization integer

我在VC ++ MFC中创建一个首选项表单,我有几个只接受整数的文本字段。我是MFC的新手,所以这就是我在一些教程中初始化它们的方法:

CProgramDlg::CProgramDlg(CWnd* pParent /*=NULL*/)
: CDialog(CProgramDlg::IDD, pParent)
, m_nSampleValue1()
, m_nSampleValue2() ... m_nSampleValueN {}

这很棒,但是当我运行它时,所有的文本框都用零填充。我知道使用字符串,你可以发送它“”它将清除文本框,但我为我的整数尝试了NULL并且没有任何运气。

有没有一个技巧让文本框只是空而不显示零?谢谢你的帮助!

1 个答案:

答案 0 :(得分:3)

m_nSampleValue1()m_nSampleValue2()已初值化。如果它是原始类型,那么这意味着它们将被零初始化。

  

是否有诀窍让文本框只显示为空而不显示0?

如果是整数类型,那么我认为如果不改变代码的其他部分是不可能的(哪一部分?你没有在这里发布)。如果您不想这样做,或者如果这样做很难,那么您可以将成员的类型更改为字符串,然后它们将自动为空字符串。


但是,如果要查看非零值,请执行以下操作:

CProgramDlg::CProgramDlg(CWnd* pParent /*=NULL*/)
: CDialog(CProgramDlg::IDD, pParent)
, m_nSampleValue1(100)
, m_nSampleValue2(200) ... m_nSampleValueN(1000) {}