天天看点

MFC记录

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. 添加控件变量,用于获得控件的所有操作和数据

右击 控件 ->添加 类向导