VC++ COMBO BOX控件的使用


1.你在編輯狀態下點那個控件的向下的三角形,就出冒出來一個可以調高度的東東。將高度調高,否則在執行時會不能顯示下拉選項。

2.為combo box添加選項,在編輯狀態下選combo box控件的屬性,選Data標簽,在編輯框中添加選項,按Ctrl-Enter來添加下一個選項。

3.為combo box添加變量

combo box有兩個變量,CComboBox類變量和CString變量。

CComboBox變量用來設置combo box的屬性,一般在cdialog類中的oninitdialog()函數中使用。添加方法是在classwizard中添加變量,添加時Category中選Control。例如:CComboBox.SetCurSel(0)用來設置下拉菜單初始值,具體看MSDN。   

CString變量用來存儲下拉菜單所選的選項值。同樣,當選項發生變化時要使用UpdateData(TRUE)函數更新該變量的值。

-----------------------------------------------------------------------------------------------------------------

一、初始化Combo Box控件

(1)在資源視圖中,選擇控件的"Properties",然后在Data選項卡里為控件添加初始化數據,換行是按Ctrl+Enter,然后,再修改Style選項卡里的Type屬性為Drop List。

(2)在程序初始化時動態添加

CString strTemp;

((CComboBox*)GetDlgItem(IDC_COMBO_CF))->ResetContent(); //消除ID為IDC_COMBO_CF現有所有內容

for(int i=1;i<=100;i++)

{

   strTemp.Format("%d",i);

   ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->AddString(strTemp); //為控件添加初始化數據

}

(3)刪除

DeleteString( UINT nIndex ) //刪除指定行

(4)插入

InsertString( int nIndex, LPCTSTR lpszItem ) //將行插入到指定位置

(5)查找

FindString( int nStartAfter, LPCTSTR lpszItem ) //可以在當前所有行中查找指定的字符傳的位置,nStartAfter指明從那一行開始進行查找。

int SelectString( int nStartAfter, LPCTSTR lpszItem ) //可以選中包含指定字符串的行

二、如何控制Combo Box的下拉長度

1,首先要知道兩點:一、那就是在設計界面里,點擊一下Combo Box的下拉箭頭,此時出現的調整框就是Combo Box的下拉調整框。

2,二、屬性里有個 No integral height 鈎選項,表示最大長度為設計長度,如果實際內容比設計長度多,就出現滾動條,少就以實際長度顯示。

三、選擇其中的某行

(1)選中:

int iPos=((CComboBox*)GetDlgItem(IDC_COMBO_CF))->GetCurSel(); //當前選中的行。

(2)設置

((CComboBox*)GetDlgItem(IDC_COMBO_CF))->SetCurSel(n) //設置第n行內容為顯示的內容。

四、取得Combo Box框內容

(1)取當前內容

((CComboBox*)GetDlgItem(IDC_COMBO_CF))->GetWindowText(strTemp); //將獲取的值存放到CString類型變量strTemp中。

如果定義了關聯的變量,例如m_combo,可以直接獲取:m_combo->GetWindowText(strTemp);

(2)取其他行內容

((CComboBox*)GetDlgItem(IDC_COMBO_CF))->GetLBText(n,strTemp);  //其中n為從0開始的索引值

五、獲取當前選擇的行數

例如:((CComboBox*)GetDlgItem(IDC_COMBO_CF))->GetCurSel()  返回的是當前選中值的行數,是整型。

或者:UINT m_row = m_combo->GetCurSel()

六、獲得焦點

通常要判斷控件是否獲得了焦點,可以用GetFocus()函數

例如:if(GetFocus()==GetDlgItem(IDC_EDIT_VALUE2))//判斷焦點是否在編輯框IDC_EDIT_VALUE2內。

但是combobox 的焦點不同,因為它是由edit和listbox兩部分組成的

所以獲得焦點要用GetParent():if ((GetFocus()->GetParent())==GetDlgItem(IDC_COMBO_CF))

-----------------------------------------------------------------------------------------------------------------

一、如何添加/刪除Combo Box內容

1,在Combo Box控件屬性的Data標簽里面添加,一行表示Combo Box下拉列表中的一行。換行用ctrl+回車。

2,在程序初始化時動態添加

如: //控件內容初始化

CString strTemp;

((CComboBox*)GetDlgItem(IDC_COMBO_CF))->ResetContent(); //消除現有所有內容

for(int i=1;i<=100;i++)

{

   strTemp.Format("%d",i);

   ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->AddString(strTemp);

}

3,下拉的時候添加

如:

CString strTemp;

int iCount=((CComboBox*)GetDlgItem(IDC_COMBO_CF))->GetCount(); //取得目前已經有的行數

if(iCount<1)//防止重復多次添加

{

   ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->ResetContent();

   for(int i=1;i<=100;i++)

   {

    strTemp.Format("%d",i);

    ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->AddString(strTemp);

   }

}

4,刪除

DeleteString( UINT nIndex ) //刪除指定行,

5,插入

InsertString( int nIndex, LPCTSTR lpszItem ) //將行插入到指定位置

6,查找

FindString( int nStartAfter, LPCTSTR lpszItem ) //可以在當前所有行中查找指定的字符傳的位置,nStartAfter指明從那一行開始進行查找。

int SelectString( int nStartAfter, LPCTSTR lpszItem ) //可以選中包含指定字符串的行

二、如何控制Combo Box的下拉長度

1,首先要知道兩點:一、那就是在設計界面里,點擊一下Combo Box的下拉箭頭,此時出現的調整框就是Combo Box的下拉調整框。

2,二、屬性里有個 No integral height 鈎選項,表示最大長度為設計長度,如果實際內容比設計長度多,就出現滾動條,少就以實際長度顯示。

 

三、選擇其中的某行

1,選中:

int iPos=((CComboBox*)GetDlgItem(IDC_COMBO_CF))->GetCurSel(); //當前選中的行。

2,設置

((CComboBox*)GetDlgItem(IDC_COMBO_CF))->SetCurSel(n) //設置第n行內容為顯示的內容。

四、取得Combo Box框內容

1取當前內容

((CComboBox*)GetDlgItem(IDC_COMBO_CF))->GetWindowText(strTemp);

2取其他行內容

((CComboBox*)GetDlgItem(IDC_COMBO_CF))->GetLBText(n,strTemp);

---------------------------------------------------------------------------------------------------------------

兩個DropDownList 控件,選擇第一個后,第二個根據第一個搜索數據庫表內容填充信息。

問題是,第一個DropDownList 控件,我實現了SelectedIndexChanged事件,不過好像沒反應啊。

謝謝  

把Postback設成True

AutoPostBack="True"


免責聲明!

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



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