天天看點

MFC記錄

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. 添加控件變量,用于獲得控件的所有操作和資料

右擊 控件 ->添加 類向導