当我使用Tab键或方向键移动到对话框上的CEdit控件时,控件中的所有文本都被选中。这种行为会引起我的问题,如果控件只是将光标放在文本的开始(或结束)并且没有选择任何东西,我更喜欢它。 有没有简单的方法来做到这一点(例如,我可以设置的控件属性)?CEdit在获取焦点时选择所有内容
7
A
回答
2
我不认为这样的风格存在。
但是你可以用向导中添加的onSetFocus处理程序:
void CMyDlg::OnSetfocusEdit1()
{
CEdit* e = (CEdit*)GetDlgItem(IDC_EDIT1);
e->SetSel(0); // <-- hide selection
}
7
实现目标的另一种方法是,以防止被选择的内容。在对话框中浏览控件时,对话框管理器将查询与其行为有关的某些属性的相应控件。默认情况下,编辑控件会响应DLGC_HASSETSEL
标志(等等)向对话管理器指示其内容应该被自动选择。
要解决此问题,您必须继承编辑控件并处理WM_GETDLGCODE消息才能正确更改标志。首先,从CEdit
派生一个类:
class CPersistentSelectionEdit : public CEdit {
public:
DECLARE_MESSAGE_MAP()
afx_msg UINT OnGetDlgCode() {
// Return default value, removing the DLGC_HASSETSEL flag
return (CEdit::OnGetDlgCode() & ~DLGC_HASSETSEL);
}
};
BEGIN_MESSAGE_MAP(CPersistentSelectionEdit, CEdit)
ON_WM_GETDLGCODE()
END_MESSAGE_MAP()
下一个子类的实际控制。有很多方法可以做到这一点。为了简单起见,只需要声明一个类成员CPersistentSelectionEdit
型m_Edit1
在对话框类,并添加DoDataExchange
相应的条目:
// Subclass the edit control
DDX_Control(pDX, IDC_EDIT1, m_Edit1);
在这一点上,你有没有它的内容编辑控制,自动选择当导航到。您可以根据需要控制选择。
+2
如果您使用此方法,则每次将焦点设置到文本框时都不会丢失插入位置,所以我更喜欢它。 – DanDan 2014-08-14 23:22:48
相关问题
- 1. 如何在JFormattedTextField获取焦点时选择所有文本?
- 2. 如何选择文本框中的所有文本获取焦点时
- 3. 焦点取消选择
- 4. php/sql选择在48小时内过期的所有内容
- 5. 焦点选择
- 6. SQL如何在SP中获取所需的选择内容
- 7. 如何焦点,并在一个textarea选择的内容部分
- 8. 选择格的所有内容
- 9. jQuery蒙面输入插件。选择所有内容,当文本框获得焦点
- 10. 防止Chrome在画布外绘制时选择所有内容?
- 11. 获取所选内容的HTML
- 12. 在Chrome中,将焦点放在HTML文本输入框中可选择内容。如何取消选择?
- 13. 获取所选节点的基本内容
- 14. 是否有一个选择查询来抓取除当前所选内容之外的所有内容?
- 15. 递归读取目录并有选择地获取内容
- 16. MFC如何自动选择CEdit控件中的所有文本
- 17. Dynatree:选择节点时自动选择所有兄弟节点
- 18. 如何获取所选内容的HTML标记内的所有内容asp.net代码隐藏内容
- 19. 获取在日期选择器中选择的所有日期
- 20. 如何在fullcalendar上以小时获取所有活动内容
- 21. 是否有一个jQuery选择器来获取所有可以获得焦点的元素?
- 22. SQL查询不获取所有内容
- 23. 获取所有桶的内容对象
- 24. 在调焦时选择文本框中的所有文本
- 25. 获取DIV中的所有内容,包括输入选择器的标记值
- 26. 如何获取li的所有内容点击一个li?
- 27. 从XML节点获取所有内容作为字符串
- 28. 如何在文本框获取焦点时取消选择文本,当选项卡被按下时?
- 29. 选择后保持焦点选择2
- 30. 与焦点获取儿童内NSSplitView
这并不适合我。我的编辑控件是多行的,其内容可以比控件高(我有一个垂直滚动条)。 bNoScroll需要为TRUE,并且“no select”的选择是-1,0,所以我的代码称它为'e-> SetSel(-1,0,TRUE);'。当我通过我的对话框的控件选项卡时,这将保持任何当前的滚动位置,但也确保一旦焦点返回到我的编辑控件,就不会选择任何内容。 – franji1 2017-07-05 16:25:04