MFC可能会持续更新吧......因为各种原因,IDE用的vs2010。

新建一个MFC应用程序,项目名叫做comboBox,位置可自选。

MFC之下拉框

在应用程序类型中选择基于对话框,点击完成

MFC之下拉框

可以看到创建之后一个MFC窗口的初始样式

MFC之下拉框

在右侧工具箱中选择combo box

注意选择前ctrl+A全选初始窗口,delete删除原来的控件。

MFC之下拉框

下拉框右键属性,在data中添加项

注意分号分隔不同的项,比如:鸡翅;可乐;薯片

MFC之下拉框

添加后的界面

MFC之下拉框

不过此时的框中,鸡翅可乐的数据可以被修改,比如改成鸡腿,这是原来下拉的项中所没有的。

MFC之下拉框

同样右键属性,在右边的type中,原本是dropdown,改选成droplist,这样就不可修改了。

MFC之下拉框

注意一点,data中的和下拉框中项的排序不一定相同,如果需要按照自己的顺序,也是右键,将sort改选成false。

在代码中添加data项以及其他操作

右键添加变量,然后填写变量名,并选好访问方式,点击完成。

MFC之下拉框

然后在左侧的类视图中点开CcomboBoxDlg,选择DodataExchange()方法,可以看到n_cbx已经和ComboxBox相关联。

MFC之下拉框

点击OnInitDialog()函数,在其中填写代码。

//下拉框添加
n_cbx.AddString(TEXT("鸡翅"));
n_cbx.AddString(TEXT("可乐"));
n_cbx.AddString(TEXT("薯片"));
n_cbx.AddString(TEXT("蛋挞"));

设置默认选项,使得还没有选择时,框中有默认值。

n_cbx.SetCurSel(0);

其他一些操作

//插入操作
n_cbx.InsertString(4, TEXT("汉堡"));

//删除
n_cbx.DeleteString(3);

//获取1号的索引具体内容
CString str;             //准备一个str,得到1号索引中的值
n_cbx.GetLBText(1, str);
MessageBox(str);         //弹出str

触发事件

先注释获取的代码

MFC之下拉框

然后打开:资源视图--dialog,然后选择第二个--控件事件--selectchange,当选项更改时,就会触发事件(就是在下拉框中选择另一个项)。然后可以监听事件并进行一些操作。

MFC之下拉框

添加代码,当更换下拉框选项时,会弹出更改的选项

//拿到索引的位置
int index = n_cbx.GetCurSel();

CString str;
n_cbx.GetLBText(index, str);

MessageBox(str);

MFC之下拉框

弹出效果图

MFC之下拉框

相关文章:

  • 2022-02-07
  • 2022-12-23
  • 2021-07-11
  • 2021-04-21
  • 2022-01-15
  • 2021-09-23
  • 2021-05-31
  • 2022-03-10
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-07-26
  • 2022-01-14
  • 2021-07-03
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案