Auto Complete

Posted: 一月 7, 2008 in 技術相關
標籤:,

Auto Complete

Google現在查詢時 都會自動幫你提示可能的查詢字元是什麼?

這種技術 我們稱他做 “Auto Complete“…

據稱 google 是用當紅的 Ajax 所完成的…

不過這種技術 其實不難…. 難的是 為什麼可以這麼快查詢出後端資料庫 @@"

之前在翻網路文章時 看到這篇文章[連結] … 發現其實實作這個

只需要單純的幾個觀念

  1. 觸發事件 KeyUp()
  2. Action()
  3. Simulate Table

恰巧 我們之前專案也提過需要作類似的功能快速提示使用者欲查詢字串…

所以就來試了一下 … 不過我不會 Ajax 只會寫 C++ 所以就用他來試試看…

由 Visual C++ 下手 第一步就是要去找 Edit_Box 的 KeyUp() 事件為何?

找了一下 MSDN 發現 是由一個叫 EN_CHANGE 的 Messgae 所管控…

於是我就利用了一個 edit box 和兩個 list(data source & results) 來試試看…

Action() 部分 我寫成 Compare(CString) 函示, 於 KeyUp() Message 所收到之 KeyIn

傳入 Compare 函示去比對… 在於 Results List 中作展示…

Compare(CString) 函示如下

void CAutoCompleteDlg::Compare(CString name)
{
m_Result.DeleteAllItems();
// Find the length of name
length = name.GetLength();
idx = 0;
CString str_idx;

for(int i = 0; i

  • EXE – ClickMe
  • Code – ClickMe
  • PS: Compiler 平台 Visual C++ 6.0

    迴響
    1. robertdx 說道:

      open source 一定要推一下的.
      補充Flex 版本的auto complete:

      sho’s auto complete component

    2. brain 說道:

      哈 其實 我這根本不算完整的 AutoComplete
      重點 SimulateTable 以及鍵盤 Up/Down 都沒抓到…
      AutoComplete 的重點應該是 幫助使用者 能更快速的找尋到其所欲查詢之資料…
      所以 仿照 SimulateTable 以及KeyBoard Down to Select 是必須的…
      找時間再來研究研究 :p

    發表迴響

    在下方填入你的資料或按右方圖示以社群網站登入:

    WordPress.com Logo

    You are commenting using your WordPress.com account. Log Out / 變更 )

    Twitter picture

    You are commenting using your Twitter account. Log Out / 變更 )

    Facebook照片

    You are commenting using your Facebook account. Log Out / 變更 )

    Google+ photo

    You are commenting using your Google+ account. Log Out / 變更 )

    連結到 %s