wxWidgets 2.9 と wxComboBox AutoComplete 機能に関する問題があります。以下は、ComboBox の ENTER イベントを受け取るイベント テーブルです。入力時に OnComboEnter を起動します。これを行うと、ユーザーが ComboBox に入力したテキストに対して OnComboEnter メソッドを直接実行するため、AutoComplete リストから項目を選択できません。
BEGIN_EVENT_TABLE(LVFilterPanel, wxPanel)
EVT_TEXT_ENTER(wxID_ANY, LVFilterPanel::OnComboEnter)
EVT_CONTEXT_MENU(LVFilterPanel::OnComboContextMenu)
END_EVENT_TABLE()
私の ComboBox は次のように宣言されています。
mFilterString = new wxComboBox(this, LV_FILTER_STRING, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, 0, wxTE_PROCESS_ENTER);
AutoComplet は、wxWidgets 2.9 にあるデフォルトの AutoComplete メソッドを使用して行われます。
mFilterString->AutoComplete(historyarr);
historyarr は、ユーザーが以前に入力した文字列で満たされた wxArrayString です。OnComboEnter メソッドは次のようになります。
void LVFilterPanel::OnComboEnter(wxCommandEvent& event) {
wxCommandEvent ce(wxEVT_COMMAND_BUTTON_CLICKED, LV_FILTER);
static_cast<wxButton*>(FindWindow(LV_FILTER))->Command(ce);
}
私の質問は、最初に項目を選択してから OnComboEnter を処理できるようにイベント処理を変更して、ユーザーが最初に項目を選択できるようにする方法です (または、項目をまったく選択しない可能性があります) Enter キーを押してイベントと OnComboEnter メソッドを起動します)。前もって感謝します。
はじめまして、
ロイン