想要出现如下图的结果,使用两个相关的combox控件,前面一个控件是组件IDC_COMBO_PART,后面一个是组件类别IDC_COMBO_TYPE,
首先,在对话框的头文件**Dlg.h里为两个组件分别定义自己的变量
CComboBox m_cbxPowerPart;//一个记录组件
CComboBox m_cbxPowerType;//一个记录组件类别
然后在类向导里面设置响应函数
首先在BOOL CXXDialog::OnInitDialog()中初始化组件IDC_COMBO_PART的显示:
int i = 0;
m_cbxPowerPart.InsertString(i++, _T("塔身"));
m_cbxPowerPart.InsertString(i++, _T("塔头"));
m_cbxPowerPart.InsertString(i++, _T("支撑"));
m_cbxPowerPart.InsertString(i++, _T("横断"));
m_cbxPowerPart.InsertString(i++, _T("塔顶"));
m_cbxPowerPart.SetCurSel(0);
再在响应函数中添代码:
void CXXDialog::OnSelchangeComboPart()
{
CString strWeb;
// 获取组合框控件的列表框中选中项的索引
int nPart = m_cbxPowerPart.GetCurSel();
// 根据选中项索引获取该项字符串
m_cbxPowerPart.GetLBText(nPart, strWeb);
// 将组合框中选中的字符串显示到IDC_SEL_WEB_EDIT编辑框中
SetDlgItemText(IDC_COMBO_PART, strWeb);
int i;
//选择不同的nPart,组件类别IDC_COMBO_TYPE弹出的字符也就不一样
switch (nPart)
{
case 0:
m_cbxPowerType.ResetContent();//清空之前显示的内容
i = 0;
m_cbxPowerType.InsertString( (i++), _T("***"));//输入你想显示的内容
break;
case 1:
m_cbxPowerType.ResetContent();
i = 0;
m_cbxPowerType.InsertString( (i++), _T("***"));//输入你想显示的内容
m_cbxPowerType.InsertString( (i++), _T("***"));//输入你想显示的内容
break;
..........//加入各种不同的情况
default:
m_cbxPowerType.ResetContent();
}
}
对类型控件也是进行类似的操作,就不写啦,刚刚上手,还有很多不了解的内容,慢慢学习