コンボボックスの自動選択について

[戻る]
mc 2012/12/11(火) 07:54:32
現在大学でMFCのコンボボックスの勉強をしています。
ドロップダウンリストにした場合、キーボードから文字を入力すると同じ先頭文字のリストが自動
選択されますが、2文字連続で入力すると別の文字が選択されてしまいます。
2文字連続で入力した場合、該当するリストを表示させることは可能でしょうか?
また、自動選択を全くしないというのも作成しようとしてますができません‥
ご教授お願いいたします。

bun 2012/12/12(水) 10:53:45
ごりごり、コーディングしか思いつかない。

CComboBoxの派生クラス作って、DDXでコンボボックスリソースと関連づける。
CComboBoxの派生クラスの方では WM_KEYDOWN のメッセージハンドラ作って、
1文字目が押されたら、先頭文字の一致する最初の行にをSetCurSel ()、
それと同時にタイマー走らせて、タイムアウト前に2文字目が押されたら、
先頭の2文字が一致する最初の行にをSetCurSel ()、
タイムアウトするか一致する行が見つからなかったら、SetCurSel(-1)、
そんな感じ。

実際に試してないので、間違ってたら失礼。

mc 2012/12/13(木) 08:22:23
回答ありがとうございます。
参考にさせていただきます!

AR 2012/12/13(木) 09:23:16
bunさんの提示されている方法に近いですが、自前で実装したものがあったので見てみま
した。

CComboBoxの派生クラス作るのまでは同じで、PreTranslateMessageでWM_KEYDOWNを拾
い、全て自前でゴリゴリやってます。
これならタイマー類を使わなくてすみますし、わりとコード量も少なくすみますが、大
量データを処理するのには向いてないですね。

古いスレッドには追加発言できません。