SDI中CComboBox显示问题
问题:单文档的窗口中CComboBox项的值不能正常显示
程序环境:
操作系统:windows xp
开发环境:VC 6.0
建立一个单文档程序,运行程序时,通过打开配置窗口时,配置窗口中的CComboBox配置项能下拉显示相应的值。
问题是现在配置窗口能正常显示,但是CComboBox下拉项不能拉动,没有相应的值?
在ResourceView的Dialog中新建IDD_CONFIG,在该对话框中增加一CComboBox项,取名为IDC_COMBO_SIGNALTYPE,其他选型都默认,Data项中没有数据
生成类CConfigDlg.
在ResourceView的Menu的IDR_MAINFRAME中新增一子菜单:配置,在ClassWizard中的MyView视类中生成映射函数void CMyView::OnConfig()
,在MyView.cpp中包含头文件ConfigDlg.h.
模式对话框显示:
在void CMyView::OnConfig()中添加代码如下
{
CConfigDlg cfgDlg;
cfgDlg.DoModal();
}
在CConfigDlg::CConfigDlg(CWnd* pParent /*=NULL*/)
: CDialog(CConfigDlg::IDD, pParent)
中添加代码如下
{
CComboBox * pCombo = (CComboBox * ) this->GetDlgItem(IDC_COMBO_SIGNALTYPE);
CString strValue1,strValue2,strValue3,strValue4;
strValue1 = "信号类型1";
strValue2 = "信号类型2";
strValue3 = "信号类型3"
strValue4 = "信号类型4";
pCombo->AddString((LPCTSTR)strValue1);
pCombo->AddString((LPCTSTR)strValue2);
pCombo->AddString((LPCTSTR)strValue3);
pCombo->AddString((LPCTSTR)strValue4);
//但是加上下面就能在控件中显示当前值,不过还是没有其他3个选项值.
//pCombo->SetCurSel(0);
}
生成程序打开配置对话框正常,但是CComboBox下拉项不能拉动,没有相应的值,通过调试显示在pCombo->AddString((LPCTSTR)strValue1)时this指针有值,但是this的m_hWnd值为0。
非模式对话框显示:
在void CMyView::OnConfig()中添加代码如下
{
CConfigDlg * pCfgDlg = new CConfigDlg;
pCfgDlg->Create(IDD_CONFIG,this);
pCftDlg->ShowWindow(SW_SHOW);
}
在CConfigDlg::CConfigDlg(CWnd* pParent /*=NULL*/)
: CDialog(CConfigDlg::IDD, pParent)
中添加代码如下
{
CComboBox * pCombo = (CComboBox * ) this->GetDlgItem(IDC_COMBO_SIGNALTYPE);
CString strValue1,strValue2,strValue3,strValue4;
strValue1 = "信号类型1";
strValue2 = "信号类型2";
strValue3 = "信号类型3"
strValue4 = "信号类型4";
pCombo->AddString((LPCTSTR)strValue1);
pCombo->AddString((LPCTSTR)strValue2);
pCombo->AddString((LPCTSTR)strValue3);
pCombo->AddString((LPCTSTR)strValue4);
//但是加上下面就能在控件中显示当前值,不过还是没有其他3个选项值.
//pCombo->SetCurSel(0);
}
生成程序打开配置对话框正常,但是CComboBox下拉项不能拉动,没有相应的值,通过调试显示在pCombo->AddString((LPCTSTR)strValue1)时this指针有值,但是this的m_hWnd值为0。
是不是在CComboBox中增加值后还需要其他操作?谁能给我指点一下,谢谢
联系方式:11rens@163.com