1,下拉列表式组合框
合框被操作时会向父窗口发送通知消息,这些通知消息及其含义如下:
cbn_closeup:组合框的列表框组件被关闭,简易组合框不会发送该通知消息
cbn_dblclk:用户在某列表项上双击鼠标,只有简易组合框才会发送该通知消息
cbn_dropdown:组合框的列表框组件下拉,简易式组合框不会发送该通知消息
cbn_editupdate:在编辑框准备显示改变了的正文时发送该消息,下拉列表式组合框不会发送该消息
cbn_editchange:编辑框的内容被用户改变了,与cbn_editupdate不同,该消息是在编辑框显示的正文被刷新后才发出的,下拉列表式组合框不会发送该消息
cbn_errspace:组合框无法申请足够的内存来容纳列表项
cbn_selendcancel:表明用户的选择应该取消,当用户在列表框中选择了一项,然后又在组合框控件外单击鼠标时就会导致该消息的发送
cbn_selendok:用户选择了一项,然后按了回车键或单击了下滚箭头,该消息表明用户确认了自己所作的选择
cbn_killfocus:组合框失去了输入焦点
cbn_selchange:用户通过单击或移动箭头键改变了列表的选择
cbn_setfocus:组合框获得了输入焦点
目前使用:cbn_selchange
如下代码是:获取当前选择的item
void cxxxdlg::onselchangecombbaudrate()
{
// todo: add your control notification handler code here
trace("ddddddddddd");
cstring baudtemp = "";
int nsel = m_baud_rate.getcursel();// 获取组合框控件的列表框中选中项的索引
m_baud_rate.getlbtext(nsel, baudtemp);// 根据选中项索引获取该项字符串
baudrate = atoi(baudtemp);//将cstring转为int
cstring str = "";
str.format("baud rate: %d", baudrate);//将int转为cstring
//afxmessagebox(str);//通过弹窗显示,用于调试,也可以使用trace显示
}
(1) 下拉列表式组合框 中添加列表项
方法1:
bool cexample25dlg::oninitdialog()
...
// 为组合框控件的列表框添加列表项“鸡啄米”
m_comboweb.addstring(_t("鸡啄米"));
// 为组合框控件的列表框添加列表项“百度”
m_comboweb.addstring(_t("百度"));
// 在组合框控件的列表框中索引为1的位置插入列表项“新浪”
m_comboweb.insertstring(1, _t("新浪"));
// 默认选择第一项
m_comboweb.setcursel(0);
// 编辑框中默认显示第一项的文字“鸡啄米”
setdlgitemtext(idc_sel_web_edit, _t("鸡啄米"));
方法2:
右击 组合框控件 选择 属性->数据 ,在文本框中输入列表项,按 ctrl + enter 换行
(2) 不设备 组合框控件的列表框自动排序
右击 组合框控件 选择 属性->样式 ,取消“分类”
2. 添加控件变量,用于获得控件的所有操作和数据
右击 控件 ->添加 类向导