首页 > 编程语言 > 详细

MFC之下拉框

时间:2020-04-16 01:03:14      阅读:95      评论:0      收藏:0      [点我收藏+]

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

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

技术分享图片

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

技术分享图片

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

技术分享图片

在右侧工具箱中选择combo box

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

技术分享图片

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

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

技术分享图片

添加后的界面

技术分享图片

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

技术分享图片

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

技术分享图片

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

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

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

技术分享图片

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

技术分享图片

点击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

触发事件

先注释获取的代码

技术分享图片

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

技术分享图片

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

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

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

MessageBox(str);

技术分享图片

弹出效果图

技术分享图片

MFC之下拉框

原文:https://www.cnblogs.com/echobiscuit/p/12706832.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!