MFC在单击时突出显示任何文本编辑框

MFC在单击时突出显示任何文本编辑框,mfc,Mfc,我需要通过单击编辑框来突出显示编辑框中的所有文本 作为浏览器的编辑框站点地址 这个按钮代码有效 m_text.SetFocus(); m_text.SetSel(0, -1); 但编辑框事件不起作用 void CMFCApplication99Dlg::OnEnSetfocusEdit1() { m_text.SetFocus(); m_text.SetSel(0, -1); } 问题是这是标准行为。当您在编辑控件中单击时,将选择您指向的位置 要克服这种行为,应该可以在EN_

我需要通过单击编辑框来突出显示编辑框中的所有文本 作为浏览器的编辑框站点地址

这个按钮代码有效

m_text.SetFocus();
m_text.SetSel(0, -1);
但编辑框事件不起作用

void CMFCApplication99Dlg::OnEnSetfocusEdit1()
{
    m_text.SetFocus();
    m_text.SetSel(0, -1);
}

问题是这是标准行为。当您在编辑控件中单击时,将选择您指向的位置

要克服这种行为,应该可以在
EN_SETCOCUS
处理程序中将
EM_setel
作为窗口消息发布

void CMFCApplication99Dlg::OnEnSetfocusEdit1()
{
  m_text.PostMessage(EM_SETSEL,0,-1);
}

PS:在您的代码中,当您在
EN_SetFocus
处理程序中时,不需要额外的
SetFocus

问题是这是标准行为。当您在编辑控件中单击时,将选择您指向的位置

void CMFCApplication99Dlg::OnEnSetfocusEdit1()
{
  m_text.PostMessage(EM_SETSEL,0,-1);
}
要克服这种行为,应该可以在
EN_SETCOCUS
处理程序中将
EM_setel
作为窗口消息发布

void CMFCApplication99Dlg::OnEnSetfocusEdit1()
{
  m_text.PostMessage(EM_SETSEL,0,-1);
}

PS:在您的代码中,当您在
EN_SetFocus
处理程序中时,不需要额外的
SetFocus

SetFocus是多余的。当您收到活动时,您已经获得了焦点!为了突出显示旁注上的所有文本,在对话框中调用
SetFocus
几乎总是错误的。在MFC中,您调用发送
WM_NEXTDLGCTL
message的函数。SetFocus是冗余的。当您收到活动时,您已经获得了焦点!为了突出显示旁注上的所有文本,在对话框中调用
SetFocus
几乎总是错误的。在MFC中,您调用哪个发送
WM_NEXTDLGCTL
消息。
void CMFCApplication99Dlg::OnEnSetfocusEdit1()
{
  m_text.PostMessage(EM_SETSEL,0,-1);
}