MFC-ComboBox控件的使用

架构:

本次采用的是单纯对ComboBox下拉框的使用:

内容为

修改ComboBox的下拉成员:通过修改属性的数据内容和直接用代码实现

修改ComboBox控件的排序方式

修改ComboBox控件为不可编辑

通过代码实现对ComboBox的 增加 删除 插入

添加默认的菜单选项

获取当前选择的菜单选项的内容

获取当前索引

跟据索引获取内容

对选择事件后的响应

步骤

首先进行rc文件的ui添加

 

 

通过属性修改控件菜单栏

 

 

通过代码添加控件菜单栏

这里需要在初始化的时候添加,首先先要将Combox控件添加一个变量来处理。

 

 

然后在dlg为结尾的对话框实现类的OnInit成员函数里面进行初始化:

 

 

修改ComboBox控件的排序方式:

因为ComboBox的默认排序方式是根据菜单栏选项的每项的首个字符的ASCII码来处理,所以如果我们想根据自己添加的来就需要在属性里面修改排序方式

 

 

修改控件为不可编辑

参考经常使用的软件的下拉式控件都是不可编辑只能选择的,所以这里采用引用不可选择来处理

 

 

将这里的类型改为下拉列表就好

通过代码对下拉式菜单的增加 删除 插入

同样的由于没有具体控件来处理事件,所以直接在初始函数中来初始化处理

增加前文已经描述过了

下面是删除函数

插入:将需要插入的内容根据索引的位置直接插入进去

 

 

设置默认的菜单选项

参考普通软件,比如win10下的记事本,每个下拉式菜单都有一个默认值来处理的,所以这里我们也设置一个默认值来处理

同样需要在init初始化函数来处理

 

 

获取当前选择的菜单项的内容

用函数来获取默认子菜单项的内容并用MessageBox来显示

 

 

 

当改变子菜单后的内容响应

当在选择了具体的子菜单内容后通常都对后续有所影响和响应,所以这里我们开始编写修改子菜单选定内容的响应

首先在控件响应中添加CBN_SELCHANGE也就是当控件中内容改变后的响应

 

 

添加响应后我采取的demo处理方式就是显示选择的子菜单的内容,当然你可以是别的

 

 

完整代码实现:

https://github.com/skrandy/MFC_ComboBox_Myself