1,下拉清單式組合框
合框被操作時會向父視窗發送通知消息,這些通知消息及其含義如下:
cbn_closeup:組合框的清單框元件被關閉,簡易組合框不會發送該通知消息
cbn_dblclk:使用者在某清單項上輕按兩下滑鼠,隻有簡易組合框才會發送該通知消息
cbn_dropdown:組合框的清單框元件下拉,簡易式組合框不會發送該通知消息
cbn_editupdate:在編輯框準備顯示改變了的正文時發送該消息,下拉清單式組合框不會發送該消息
cbn_editchange:編輯框的内容被使用者改變了,與cbn_editupdate不同,該消息是在編輯框顯示的正文被重新整理後才發出的,下拉清單式組合框不會發送該消息
cbn_errspace:組合框無法申請足夠的記憶體來容納清單項
cbn_selendcancel:表明使用者的選擇應該取消,當使用者在清單框中選擇了一項,然後又在組合框控件外單擊滑鼠時就會導緻該消息的發送
cbn_selendok:使用者選擇了一項,然後按了Enter鍵或單擊了下滾箭頭,該消息表明使用者确認了自己所作的選擇
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. 添加控件變量,用于獲得控件的所有操作和資料
右擊 控件 ->添加 類向導