在Dialog中用CListBox要注意啦

MSDN是非常重要的,不过因为自己很懒,经常直接到网上找代码,所以没养成这个好习惯,这个程序是在一个Dialog中放了一个CListBox控件,我在Dialog的构造函数中进行了如下操作,m_nListBox.AddString(str),当然啦,得先将Listm_nListBox绑定起来,m_nListBoxCListBox类型的,结果就一直报错,可能因为我是直接学习MFC又没怎么学好,在公司断网的情况下,就不知道怎么办了,问了我身边的高人,人家查了查MSDN直接告诉我,应该把这个处理放到OnInitDialog()中,为什么呢,我厚着脸皮不愿意看MSDN,嗯,高人很耐心的讲解了一番,事实上,当Dialog进行构造的时候,只是initialize variables,并没有实际的窗体和ListBox产生的

  1. construction
  2. create
  3. show

DoModal实际上把23和在一起了

Create实际上是窗体的注册啊,产生啊什么的

OnInitDialog is called after all the dialog controls are created and just before the dialog box is displayed

所以应该m_nListBox.AddString(str)放在OnInitDialog()中了,那么就重载一下OnInitDialog()就可以啦

但是一定要注意了,在override 虚函数OnInitDialog()时一定不能忘记CDialog::OnInitDialog();,调用父类的OnInitDialog()

 

下面这个MSDN里面的图也很能说明问题啊

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值