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

Shell 自动完成功能是否可以解决您的问题?

  1. 这里是 Shell 代码的 MSDN描述

  2. 这里来自CodeProject的另一个代码示例,它应该使用与您类似的方法。

于 2013-12-08T14:15:25.250 回答
0

您应该能够通过捕获 WM_KEYDOWN 并检查编辑字段是否具有焦点来检测编辑字段上的删除键。设置一个标志以指示用户已删除您建议的文本应该会有所帮助。

于 2013-12-09T13:48:14.473 回答