Combo Box (組合框)控件很簡單,可以節省空間。從用戶角度來看,這個控件是由一個文本輸入控件和一個下拉菜單組成的。用戶可以從一個預先定義的列表裏選擇一個選項,同時也可以直接在文本框裏面輸入文本,下面我說一下我使用ComBox的一些方法技巧。
1.往Combox控件裏插入信息
m_Searchmode.InsertString(0, "測試1");//插入一條信息,也可以利用AddString來添加
m_Searchmode.InsertString(1, "測試2");
m_Searchmode.SetCurSel(0);//讓其顯示0索引信息即“測試1”
2.通過索引獲取當前選定的內容
int nIndex = m_Searchmode.GetCurSel();//獲取當先選定的索引
CString str;
m_Searchmode.GetLBText( nIndex, strCBText);//通過索引獲取當前選定的內容
MessageBox(str);//彈出當前選定的內容
3.查找控件中查找給定項
int nIndex = Searchmode.FindStringExact( nStartAfter, "找到變量");
nStartAfter指明從哪一行開始查找。如果查找成功,返回的是該項的位置;否則,返回CB_ERR。
4.刪除指定的項
m_cbExample.DeleteString(nIndex);//nIndex爲索引
5.得到或設置輸入框中被選中的字符位置
BOOL SetEditSel( int nStartChar, int nEndChar );
BOOL LimitText( int nMaxChars ); 設置輸入框中可輸入的最大字符數。
6.添加/刪除Combo Box內容
CString strTemp;
((CComboBox*)GetDlgItem(IDC_COMBO))->ResetContent();//消除現有所有內容
for(int i=1;i<=100;i++)
{
strTemp.Format("%d",i);
((CComboBox*)GetDlgItem(IDC_COMBO))->AddString(strTemp);
}
在Combo Box控件屬性的Data標籤裏面添加,一行表示Combo Box下拉列表中的一行。換行用ctrl+回車
7.刪除指定行
DeleteString( UINT nIndex )//刪除指定行,nIndex爲索引
8.ComBox常用宏
ON_CBN_DBLCLK 鼠標雙擊
ON_CBN_DROPDOWN 列表框被彈出
ON_CBN_KILLFOCUS / ON_CBN_SETFOCUS 在輸入框失去/得到輸入焦點時產生
ON_CBN_SELCHANGE 列表框中選擇的行發生改變
ON_CBN_EDITUPDATE 輸入框中內容被更新
關於一些API函數大家可以看MSDN來查看更詳細的講究!