单击控件时在MFC中选择CEdit控件的内容

Posted

技术标签:

【中文标题】单击控件时在MFC中选择CEdit控件的内容【英文标题】:Selecting content of CEdit control in MFC when clicking the control 【发布时间】:2012-06-04 06:18:43 【问题描述】:

当我单击 CEdit 的文本时,我如何才能选择 CEdit 控件的内容。 我可以使用此代码选择内容:

m_ctrlEdit.SetFocus();
m_ctrlEdit.SetSel(0, -1, FALSE);

我将代码放在ON_EN_SETFOCUS 消息处理程序中,但代码在那里不起作用。

【问题讨论】:

小心更改标准 Windows 行为。用户习惯了事情的运作方式,并对点击会发生什么有预期。 【参考方案1】:

创建一个自定义 CEdit 控件,并在自定义类中添加处理程序 OnLButtonDown 并在其中放置以下代码

void CMyEdit::OnLButtonDown(UINT nFlags, CPoint point)

    
        // TODO: Add your message handler code here and/or call default
        CEdit::OnLButtonDown(nFlags, point);
        SetSel(0, -1, FALSE);
    

【讨论】:

+1:请注意,@Jeeva 允许默认基类实现仍然发生。这很重要。

以上是关于单击控件时在MFC中选择CEdit控件的内容的主要内容,如果未能解决你的问题,请参考以下文章

MFC输入框CEdit控件十六进制转换

即使焦点在其他对话框上,我们如何才能使 Cedit 控件文本突出显示?

在 MFC 中,当 CEdit 控件达到最大字符时,退格不起作用

MFC - 是不是可以为除 CEdit 之外的任何其他控件显示气球提示?

使用 MFC,如何为带有圆角和阴影的 CEdit 控件设置样式?

在 CEdit 控件中显示省略号