在我的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并删除文本,我的代码会重复添加建议的文本,此时应该不再单独使用。
我不知道如何确定用户是否删除了我建议的文字。有人解决了类似的问题吗?
答案 0 :(得分:2)
Shell自动填充是否可以解决您的问题?
这里是Shell代码的MSDN description
此处来自CodeProject的另一个代码示例,应使用与您相似的方法。
答案 1 :(得分:0)
您应该能够通过捕获WM_KEYDOWN并检查编辑字段是否具有焦点来检测编辑字段上的删除键。设置一个标志以指示用户已删除您建议的文本应该会有所帮助。