对话框中CEdit控件怎样在获得焦点后,选中全部的文字呢

devilmagic1982 2006-04-25 11:11:41
我在对话框中ON_EN_SETFOCUS(IDC_EDIT1, OnSetfocusEdit1)
在OnSetfocusEdit1中调用SetSel(0,-1)不能实现全选文字。如果不在ON_EN_SETFOCUS中处理应该怎么弄啊
...全文
467 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
tcg4 2006-04-26
  • 打赏
  • 举报
回复
在OnSetfocusEdit1中
GetDlgItem(IDC_EDIT1)->SetSel(0,-1,true);
GetDlgItem(IDC_EDIT1)->SetFocus();
吹雪 2006-04-26
  • 打赏
  • 举报
回复
楼上正解.
swordmanII 2006-04-26
  • 打赏
  • 举报
回复
我试了,下面的方法是可以的:
在OnSetfocusEdit1中:
m_edit.PostMessage(EM_SETSEL, 0, -1);
注意:是发送EM_SELSET消息,而不是WM_SETFOCUS。
CodeProject-Jerry 2006-04-26
  • 打赏
  • 举报
回复
SetSel
ftkghost 2006-04-26
  • 打赏
  • 举报
回复
不行的,你可以试试,只要是鼠标点击使其获得焦点的,是无法全选你面的文字的

那你在OnLButtonDown中加入楼上所说的
GetDlgItem(IDC_EDIT1)->SetSel(0,-1,true);
GetDlgItem(IDC_EDIT1)->SetFocus();
应该就可以了吧
devilmagic1982 2006-04-26
  • 打赏
  • 举报
回复
不行的,你可以试试,只要是鼠标点击使其获得焦点的,是无法全选你面的文字的
tcg4 2006-04-26
  • 打赏
  • 举报
回复
我的程序中正在使用,是可以的
devilmagic1982 2006-04-26
  • 打赏
  • 举报
回复
谢谢大家,
先汗自己一个,只看了消息,没注意用法,用SendMessage发消息了,改成PostMessage结果正确
devilmagic1982 2006-04-25
  • 打赏
  • 举报
回复
好像还是不行呢。。。。
我只是想实现像IE地址栏一样,当其获得焦点时就会全选其中的文字。
我在对话框中ON_EN_SETFOCUS(IDC_EDIT1, OnSetfocusEdit1)
在OnSetfocusEdit1中调用SetSel(0,-1)不能实现全选文字。
设断点,发现获得焦点时,有调用SetSel(0,-1),但文字确并没有被选中。
发现如果是用鼠标点击使其获得焦点的话就无法全选文字,如果用TAB或其它方法时,是可以全选文字的,估计是全选后又被鼠标的单击事件给清除了,这该怎么办。。
goodboyws 2006-04-25
  • 打赏
  • 举报
回复
m_edit.PostMessage(EM_SETFOCUS, 0, -1);

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧