1. 程式人生 > >MFC控制元件的使用方法

MFC控制元件的使用方法

DDX_Control的含義
MFC有所謂的資料交換和資料檢驗(DDX/DDV)。DDX(Dialog Data eXchange)將對話方塊中的控制元件對應到類的成員變數上,可以令控制元件的內容一有改變就自動傳送到變數去,還可以借MFC提供的DDV設定欄位的合理範圍。如果對變數內容有任何“確認規則”的話,用DDV(Dialog Data Validation)。

Combo-box控制元件用法:
MFC控制元件的使用主要包括在資源介面的拖畫和熟悉控制元件對應的成員函式的使用。

1)將Combo-box控制元件新增到已建立的對話方塊上。ID修改為IDC_COMBO_TEST


2)用Class Wizard新增IDC_COMBO_TEST對應的成員變數。


這樣就在對話方塊類的標頭檔案中看到:

CComboBox m_cbTest;
在實現檔案的DoDataExchange看到:
DDX_Control(pDX, IDC_COMBO_TEST, m_cbTest);
3)向IDC_COMBO_TEST的下拉列表中新增內容,有幾種方式
第一種:在屬性的Data選項中新增內容,並用分號隔開。


4)第二種:呼叫m_cbTest的成員函式,有兩個成員函式可以使用:

AddString和InsertString。
CString str1 = _T("Data1");
CString str2 = _T("Data2");
CString str3 = _T("Data3");


m_cbTest.AddString(str1);
m_cbTest.AddString(str2);
m_cbTest.AddString(str3);
//或
m_cbTest.InsertString(0, str3);
m_cbTest.InsertString(1, str2);
m_cbTest.InsertString(2, str1);
5)獲取控制元件的內容:
int nSelect;
CString str;
nSelect = m_cbTest.GetCurSel();//獲取列表中選中某項後的索引
m_cbTest.SetCurSel(0);//設定0索引為當前項,就是顯示0的內容
str = m_cbTest.GetLBText(nSelect, str);//根據索引獲取相應的字串
另外一種用法就是給列表項關聯一個32位數。
DWORD_PTR GetItemData(int nIndex) const;//獲取組合框中指定項所關聯的32位資料。nIndex引數指定組合框控制元件的列表框某項的索引(從0開始)。
int SetItemData(int nIndex,DWORD_PTR dwItemData);//為某個指定的組合框列表項設定一個關聯的32位數。nIndex引數指定要進行設定的列表項索引。dwItemData引數指定要關聯的新值。
6)其他的一些用法就不再贅述了,比如Combo-box控制元件有三種類型,分別是Drop List、Simple、Dropdown。