1、新建项目MFC对话框。

2、在主窗口添加控件,如下

【MFC笔记】组合框控件Combo Box使用

3、属性修改,type有三种,选择下拉列表,是用户不可编辑的。

【MFC笔记】组合框控件Combo Box使用

4、为控件添加控件变量,右键跳出,这里设为mycombox

【MFC笔记】组合框控件Combo Box使用

5、修改初始化程序,增加控件里面的选项

CComboBox::AddString(内容1)

CComboBox::SetCurSel(默认显示的那个选项)

这里发现我这里先加的项索引反而高一些。

【MFC笔记】组合框控件Combo Box使用

添加这个内容也可以在属性右侧的data下添加,用分号隔开

【MFC笔记】组合框控件Combo Box使用

6、显示如下

【MFC笔记】组合框控件Combo Box使用

7、添加控件响应消息,选择CBN_SELCHNGE,选择改变的时候响应

【MFC笔记】组合框控件Combo Box使用

8、获取选择的内容的索引,根据索引弹出对话框,确认是否正确

void CMFCApplication3Dlg::OnSelchangeCombo1()
{
    // TODO: 在此添加控件通知处理程序代码
    int i=mycombox.GetCurSel();
    switch (i)
    {
    case 0:
        MessageBox(L"选择的数据是0.625M");
        break;
    case 1:
        MessageBox(L"选择的数据是1.25M");
        break;
    case 2:
        MessageBox(L"选择的数据是2.5M");
        break;
    default:
        break;
    }    
}

【MFC笔记】组合框控件Combo Box使用

 

9。动态添加这个控件

按照“”动态创建静态文字CStatic和动态创建编辑框Cedit“”中的方法,在初始化函数中进行。(把上面1-8的内容都去掉或者重新建一个工程)

    CRect rect;
    this->GetClientRect(&rect);//获取父窗尺寸
    CComboBox* mycombox;//创建控件实例
    CRect rct(rect.Width()/2-75, rect.Height()/2-25, rect.Width() / 2 +75, rect.Height() / 2 + 25);//控件位置居中,大小150-50
    mycombox = new CComboBox();//动态创建申请内存
    mycombox->Create(WS_CHILD | WS_VISIBLE | WS_VSCROLL | CBS_DROPDOWNLIST, rct, this, 8888);//动态创建
    mycombox->AddString(L"diyig");//显示内容如上
    mycombox->AddString(L"dierg");
    mycombox->SetCurSel(1);//默认显示设置
    mycombox->ShowWindow(SW_SHOW);//显示在屏幕上

【MFC笔记】组合框控件Combo Box使用

2019.3.22

相关文章: