0

私の MFC アプリケーションでは、ユーザー タイプとしてテキストを提案することで、ユーザーにヘルプを提供しようとしています。

ユーザーが入力しているテキストは入力されたままになり、最後に提案されたテキストが選択されるため、ユーザーは、それが必要なものでない場合は削除を押すか、入力を続けることができ、私の提案されたテストは何にでも近づくことができます彼らは望んでいます。

私のコード (CEdit コントロールの変更ハンドラー内) は次のようになります:-

[Code to retrieve the current text]

[Code to get proposed text from my database back end]

(The user's text and the trailing extra proposed text are now in m_Eqpt)

m_EqptCtrl.SetWindowTextW(m_Eqpt);
m_EqptCtrl.SetSel(nTextLength, m_Eqpt.GetLength());

(nTextLength is the length of the text the user entered)

これは、ユーザーが入力しているときにうまく機能しますが、ユーザーがテキストをバックスペースまたはハイライトして削除すると、コードは提案されたテキストを繰り返し追加し、この時点ではそのままにしておく必要があります。

ユーザーが提案したテキストを削除したかどうかを判断する方法がわかりません。誰かが同様の問題を解決しましたか?

4

2 に答える 2

2

シェルのオートコンプリートは問題を解決する方法ですか?

  1. シェル コードの MSDN の説明

  2. ここでは、 CodeProjectからの別のコード サンプルで、あなたと同様のアプローチを使用する必要があります。

于 2013-12-08T14:15:25.250 に答える
0

WM_KEYDOWN をトラップし、編集フィールドにフォーカスがあることを確認することで、編集フィールドの削除キーを検出できるはずです。ユーザーが提案されたテキストを削除したことを示すフラグを設定すると役立つはずです。

于 2013-12-09T13:48:14.473 に答える