将建议的文本作为用户类型添加到CEdit

时间:2013-12-08 13:56:37

标签: mfc cedit

在我的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)

这在用户输入时非常有用,但如果用户使用后退空格或hilights并删除文本,我的代码会重复添加建议的文本,此时应该不再单独使用。

我不知道如何确定用户是否删除了我建议的文字。有人解决了类似的问题吗?

2 个答案:

答案 0 :(得分:2)

Shell自动填充是否可以解决您的问题?

  1. 这里是Shell代码的MSDN description

  2. 此处来自CodeProject的另一个代码示例,应使用与您相似的方法。

答案 1 :(得分:0)

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