我希望在对话框初始化的时候向Combo Box添加项目并设定默认值,就在对话框的OnInitDlg()里面添加了如下代码
CDialog::OnInitDialog()
{
CComboBox *pctrlType = dynamic_cast<CComboBox *>(this->GetDlgItem(IDC_Type));
pctrlType->InsertString(1, _T("Micro-CT"));
pctrlType->InsertString(2, _T("Binary"));
pctrlType->InsertString(3, _T("Raw Data"));
pctrlType->SetCurSel(1);
return TRUE;
}
能通过编译,调试出错,查看pctrlType竟然为NULL.
请问如何解决这个问题,会不会是Combo Box的初始化工作不应该在OnInitDialog()里完成呢?
谢谢。

解决方案 »

  1.   

    问题解决了,打错了,不应是dynamic_cast, 是static_cast
      

  2.   


    //如果 ComboBox是变量名
    ComboBox.AddString(_T("第一项"));
    ComboBox.AddString(_T("第二项"));
    ComboBox.AddString(_T("第三项"));
    ComboBox.SetCurSel(0);//设置默认选择第一个*///直接读取控件名称
    ((CComboBox*)GetDlgItem(IDC_COMBO1))->AddString(_T("第一项"));
    ((CComboBox*)GetDlgItem(IDC_COMBO1))->AddString(_T("第二项"));
    ((CComboBox*)GetDlgItem(IDC_COMBO1))->AddString(_T("第三项"));
    ((CComboBox*)GetDlgItem(IDC_COMBO1))->SetCurSel(0);一个简单的例子..
      

  3.   

    虽然打错了,但是在调用的时候要先调用CDialog::OnInitDialog();
    不然有很多意外的问题
    MFC里写程序还是要遵守规则的