MFC之下拉框


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);

彈出效果圖


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM