24课时VC之思考->列表框与组合框

 

                               列表框和组合框


 

             

一、添加

listBox.AddString("Gwen"); InsertString 和 Addstring函数都返回新加入的列表项的位置。若在整加列表项时候 发生错误,InsertString 和 Addstring函数将返回LB_ERR。如果列表框满了,将返回 LB_ERRSPACE.

 

二、删除

listBox.DeleteString(8); 这一行代码删除了列表框中第9个位置的列表框。记住,所有的列表框的位置索引从零 开始。从DeleteString成员函数中返回的值是列表框中所剩列表项的数字,如果发生 错误,则为LB_ERR。返回值可如下使用:

int nItems=listBox.GetCount();

while(nItems>3&&nItems!=LB_ERR)

nItems=listBox.DeleteString(nItems-1);

此代码删除前3个列表框之后的所有列表项。若要完全删除列表项,需要使用ResetCount函数: listBox.ResetCount(); ResetCount返回位Void(空)。

LBN_,是List BOX Notification的简称。 ClistBox::GetCursel成员函数决定列表框当前选择的列表项。

 

1.给组合框增加列表项 :

comboBox.AddString("Riley"); 或 comboBox.InsertString(0,"Mitch");

如果有错误发生,将被返回CB_ERR而不是LB_ERR 同理,CB_ERRSPACE nItems=comboBox.GetCount();

 

2.从组合框中获取收入:

m_combo.GetLBText(1,szChoice);

 

3.在组合框中查找列表项:

FindString和FindStringExact成员函数查找一个特定的列表项。

int index=m_combo.FinString(-1,szSearch); 搜索索引指定第一个被找到的列表项索引之前的列表项,因此在开始搜寻索引时必须对索引 减一作为搜索索引。

FindStringExact函数在组合框中搜索与搜索字符串精确匹配的列表项,它与FindString函数 使用相同的参数: int index=m_combo.FindStringExact(-1,szSearch);

CComboListDlg::OnCloseupCombo函数收集组合框编辑控件部分的内容和组合框列表框中所选择 的列表项。

 


1.

void CListBoxDlg::OnDblclkList() {  // TODO: Add your control notification handler code here  

int nSelection=m_listBox.GetCurSel();

 if(nSelection!=LB_ERR)  {     

CString szSelection;  

m_listBox.GetText(nSelection,szSelection);  

AfxMessageBox(szSelection);

 }

}


 

2.

void CListBoxDlg::OnCloseupCombo() {  // TODO: Add your control notification handler code here  

CString szChoice;  

CString szResult;  

int nChoice;

 m_comboList.GetWindowText(szChoice);

 nChoice=m_comboList.GetCurSel();  

if(nChoice!=CB_ERR)  {    

m_comboList.GetLBText(nChoice,szChoice);

 szResult="Closing after selecting"+szChoice;

 }      

else if(szChoice.IsEmpty()==TRUE)  {     

szResult="No choice selected";  }

 else if(

m_comboList.FindStringExact(-1,szChoice)!=CB_ERR)

{    

szResult="Closing after selecting"+szChoice;

 }

 else  {    

m_comboList.AddString(szChoice);

 szResult="Adding "+szChoice+ " to list";

 }  

CWnd *pWnd=GetDlgItem(ID_RESULT);  

ASSERT(pWnd);  

if(pWnd){    

pWnd->SetWindowText(szResult);

 }

}


3.

void CListBoxDlg::OnEditupdateCombo() {  // TODO: Add your control notification handler code here  

CString szChoice;  

CString szResult;  

m_comboList.GetWindowText(szChoice);    

szResult="Choice changed to "+szChoice;  

CWnd *pWnd=GetDlgItem(ID_RESULT);  

ASSERT(pWnd);

 if(pWnd)   

pWnd->SetWindowText(szResult);

}

 

 
 
  
 
  
  
  
  
  
  
  
  
  
  
  
  
 
 
 



  
  
  
  
  
  
  
  
  
  
  
 
 
 


 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2012-08-08 20:56  Alan Perlis  阅读(402)  评论(0编辑  收藏  举报