程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> Vc6中實現CComboBox的自動完成功能

Vc6中實現CComboBox的自動完成功能

編輯:vc教程

提升用戶輸入效率的最佳做法之一是,為TextBox 與 ComboBox 控件加入自動完成功能。所謂自動完成功能,也就是當用戶在輸入某一個詞句的時候,與已經輸入的句首或詞首相符的詞句就會自動填入或顯示出來讓你選擇。比如現在的google搜索的時候,你隨便輸入一點東西,會彈出與你輸入最相近的一些搜索關鍵字。在.Net中這個功能是很容易的,已經有相應的屬性可以供使用。在vc6.0中好像沒有,似乎沒有這個功能。

    使用以下代碼可以簡單的實現這個功能:

對ComboBox控件添加CBN_EDITCHANGE消息的處理函數,也就是當有輸入發生改變的時候,自動調用該函數

添加代碼如下:

假設ComboBox控件變量是 m_cbUserName, 臨時變量 CString strTmp;則:

m_cbUserName.GetWindowText(strTmp);

int iLen = strTmp.getlength();

//...如果ilen=0可以直接返回

if(m_cbUserName.FindSTring(-1, strTmp) != -1)

{

    m_cbUserName.SelectString(-1, strTmp);

}

m_cbUserName.SetEditSel(ilen,-1);

唯一的缺陷就是,如果你的列表中有王二小,而你又只想輸入 王二 的話......

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved