作者charleshu (Analog Engineer)
看板Programming
標題Re: [問題] 自動完成 using C++?
時間Sun May 4 22:59:16 2008
※ 引述《[email protected] (㊣人生就是不斷的後悔)》之銘言:
: ※ 引述《[email protected] (苦難已經結束 光明正到來)》之銘言:
: > 要怎樣用C++
: > 替自己寫的Win 32 API視窗程式
: > 加入所謂的自動完成(類似打一個字 就會提示很多東西出來)?
: 1:用一個資料結構(樹或linked list,隨便)存每次輸入的東西
: 2:每次inputbox裡面有輸入東西的時候就去那個資料結構裡面找
: 3:把找到的東西用一個掛在inputbox底下的元件顯示出來
: 這樣?
:
這是基本方法.
假如能保證找資料花的時間不多,這就是標準解法.
若有時會花比較多的時間來找符合的資料時,如在SQL Server裡有上萬筆以上
符合的資料,但Index沒辦法讓你有很好的 Access Plan時,用起來會頓頓的.
簡易加強版如下
1.用multi thread另開一個 thread.
2.每當資料有變更就通知那個 thread 來找資料,並若同時還有前一找尋作業
未完成的話則終止該舊找尋作業.
3.等找尋作業完成後,把找到資料塞回主 thread 裡對應的地方.
這樣一來,即使找尋作業不快,使用者仍可繼續輸入資料用起來不會頓頓的.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 221.169.217.133