Mfc 在用户键入时向CEdit添加建议的文本
在我的MFC应用程序中,我试图通过建议用户键入文本来向用户提供帮助 用户正在键入的文本保留为已键入的文本,并选择结尾处的建议文本,以便用户可以在不需要的情况下直接单击“删除”,或者他们可以继续键入,并且我建议的测试越来越接近他们想要的测试 我的代码(在CEdit控件的更改处理程序中)如下所示:-Mfc 在用户键入时向CEdit添加建议的文本,mfc,cedit,Mfc,Cedit,在我的MFC应用程序中,我试图通过建议用户键入文本来向用户提供帮助 用户正在键入的文本保留为已键入的文本,并选择结尾处的建议文本,以便用户可以在不需要的情况下直接单击“删除”,或者他们可以继续键入,并且我建议的测试越来越接近他们想要的测试 我的代码(在CEdit控件的更改处理程序中)如下所示:- [Code to retrieve the current text] [Code to get proposed text from my database back end] (The user
[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并删除文本,我的代码会重复地将建议的文本添加回,此时应该将其保留
我不知道如何确定用户是否删除了我的建议文本。有人解决过类似的问题吗?Shell自动完成功能是解决问题的一种方法吗
您应该能够通过捕获WM_KEYDOWN并检查编辑字段是否具有焦点来检测编辑字段上的delete键。设置一个标志以表明用户已删除您的建议文本应该会有所帮助。不要重新发明轮子。Windows已经实现了。ATL提供了自动完成功能!我过度疲劳的大脑不认为我在做什么。。。我打赌有一百万的搜索点击率。