Целочисленные текстовые поля C ++ MFC всегда установлены в 0? - PullRequest
2 голосов
/ 02 июня 2011

Я создаю форму предпочтений в VC ++ MFC, и у меня есть несколько текстовых полей, которые принимают только целые числа.Я новичок в MFC, поэтому я нашел, как их инициализировать в некотором учебнике:

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

Это здорово и все, но когда я запускаю его, все текстовые поля заполняются нулями.Со строками я знаю, что вы можете просто отправить его "", и он очистит текстовое поле, но я попытался использовать NULL для своих целых, и мне не повезло.

Есть ли хитрость, чтобы заставить текстовые поля просто бытьпусто без показа нулей?Спасибо за вашу помощь!

1 Ответ

3 голосов
/ 02 июня 2011

m_nSampleValue1() и m_nSampleValue2() инициализируются значением.Если это примитивные типы, то это означает, что они будут инициализироваться нулями.

Есть ли хитрость для того, чтобы текстовые поля были пустыми, не показывая 0?

Если это целочисленный тип, то я думаю, что это невозможно без изменениядругая часть кода (какую часть вы не разместили здесь).Если вы не хотите этого делать, или если это трудно сделать, то вы можете изменить тип членов на строку, тогда они автоматически будут пустыми.


Однако, если вы хотите увидеть ненулевые значения, сделайте следующее:

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