検索でMFC ComboBoxを作成する方法
-
19-08-2019 - |
質問
検索機能を持つWindows MFCアプリケーションにコンボボックスが必要です。リスト内の1つ以上のアイテムに一致する何かを入力し始めると、コンボボックスがドロップダウンしてそれらのアイテムを表示するように機能するはずです。 Webで人気のあるAjaxベースの検索ボックスが好きです
あなたは -この機能を提供するコントロールを知っていますか? -そのような機能を自分で作成する方法に関する情報へのリンクがありますか? -これを行う方法について共有できるアイデアがありますか?
解決
これを見つけました:
http://www.codeguru.com/cpp/ controls / combobox / article.php / c1807 /
CComboBoxExがMFCの一部になったためクラスの名前を変更し、OnEditUpdate()にShowDropDown()呼び出しを追加しました。
他のヒント
これはWin32 APIのFAQです。 Advを参照してください。 Win32 APIニュース://194.177.96.26/comp.os.ms-windows.programmer.win32 (CBN_EDITCHANGEはまったく必要ありません。apiを使用すると自動的に行われます)
コンボボックスの編集ボックスへのフルアクセス:
CEdit *pEdit = (CEdit *)pComboBox->GetWindow(GW_CHILD);
CEdit * pEdit =(CEdit *)pComboBox-<!> gt; GetWindow(GW_CHILD);
同様の方法でListBoxパーツにアクセスできますか?リストの内容をクリアする必要があります。 ResetContentを使用します。
CBN_EDITCHANGE
イベントのハンドラーを提供すると、ハンドラーは<!>#246;ユーザーが編集フィールドのテキストを変更するたびに呼び出されます。
このハンドラーで、CComboBox::FindString()
メソッドを呼び出して、入力されたテキストがコンボボックスエントリのいずれかに存在するかどうかを確認します。存在する場合は、CComboBox::SetCurSel()
を呼び出して選択します。