MFC可能會持續更新吧......因為各種原因,IDE用的vs2010。
新建一個MFC應用程序,項目名叫做comboBox,位置可自選。
在應用程序類型中選擇基於對話框,點擊完成
可以看到創建之后一個MFC窗口的初始樣式
在右側工具箱中選擇combo box
注意選擇前ctrl+A全選初始窗口,delete刪除原來的控件。
下拉框右鍵屬性,在data中添加項
注意分號分隔不同的項,比如:雞翅;可樂;薯片
添加后的界面
不過此時的框中,雞翅可樂的數據可以被修改,比如改成雞腿,這是原來下拉的項中所沒有的。
同樣右鍵屬性,在右邊的type中,原本是dropdown,改選成droplist,這樣就不可修改了。
注意一點,data中的和下拉框中項的排序不一定相同,如果需要按照自己的順序,也是右鍵,將sort改選成false。
在代碼中添加data項以及其他操作
右鍵添加變量,然后填寫變量名,並選好訪問方式,點擊完成。
然后在左側的類視圖中點開CcomboBoxDlg,選擇DodataExchange()方法,可以看到n_cbx已經和ComboxBox相關聯。
點擊OnInitDialog()函數,在其中填寫代碼。
//下拉框添加
n_cbx.AddString(TEXT("雞翅"));
n_cbx.AddString(TEXT("可樂"));
n_cbx.AddString(TEXT("薯片"));
n_cbx.AddString(TEXT("蛋撻"));
設置默認選項,使得還沒有選擇時,框中有默認值。
n_cbx.SetCurSel(0);
其他一些操作
//插入操作
n_cbx.InsertString(4, TEXT("漢堡"));
//刪除
n_cbx.DeleteString(3);
//獲取1號的索引具體內容
CString str; //准備一個str,得到1號索引中的值
n_cbx.GetLBText(1, str);
MessageBox(str); //彈出str
觸發事件
先注釋獲取的代碼
然后打開:資源視圖--dialog,然后選擇第二個--控件事件--selectchange,當選項更改時,就會觸發事件(就是在下拉框中選擇另一個項)。然后可以監聽事件並進行一些操作。
添加代碼,當更換下拉框選項時,會彈出更改的選項
//拿到索引的位置
int index = n_cbx.GetCurSel();
CString str;
n_cbx.GetLBText(index, str);
MessageBox(str);
彈出效果圖