社区
界面
帖子详情
对话框中CEdit控件怎样在获得焦点后,选中全部的文字呢
devilmagic1982
2006-04-25 11:11:41
我在对话框中ON_EN_SETFOCUS(IDC_EDIT1, OnSetfocusEdit1)
在OnSetfocusEdit1中调用SetSel(0,-1)不能实现全选文字。如果不在ON_EN_SETFOCUS中处理应该怎么弄啊
...全文
467
10
打赏
收藏
对话框中CEdit控件怎样在获得焦点后,选中全部的文字呢
我在对话框中ON_EN_SETFOCUS(IDC_EDIT1, OnSetfocusEdit1) 在OnSetfocusEdit1中调用SetSel(0,-1)不能实现全选文字。如果不在ON_EN_SETFOCUS中处理应该怎么弄啊
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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);
MFC C
Edit
控件
取消全选
MFC C
Edit
控件
在
对话框
中
获取
焦点
后,会全选,使用SetSel函数也不好使,在OnFocus, OnFocus
Edit
1等好几个地方调用都不好使。网上找的一些方法也感觉很别扭。因此我使用一种比较取巧的方式,PostMessage(EM_SETSEL, caretPos, caretPos); 使用 PostMessage来发送 EM_SETSEL消息,我估计SetSel函数调用的是 Sen...
MFC
中
C
Edit
控件
使用SetSel无法取消全选状态解决办法
问题背景: 我的
对话框
里只含有一个C
Edit
控件
,在
对话框
初始化时,我会载入外部文件的内容到
Edit
控件
中
。 在代码
中
我明明正确调用了C
Edit
的SetSel方法,但是
对话框
显示时,C
Edit
控件
里还是全选显示,而不是我想的没有
选
中
内容的显示。 代码如下: BOOL CXXXDialog::OnInitDialog() { CDialog::OnIn
C
Edit
控件
详细介绍
C
Edit
类提供了Windows 编辑
控件
中
的功能。编辑
控件
是一个子窗口矩形,用户可以向其
中
输入文本。可以通过对话模板或直接从代码
中
创建一个编辑
控件
。在两种情形下,首先调用C
Edit
构造程序构造C
Edit
对象,再调用Create成员函数创建Windows 编辑
控件
并将其与C
Edit
对象连接。构造在C
Edit
的派生类
中
可以单步实现。为派生类编写构造程序并从构造程序
中
调用Create。C
Edit
从CW
对话框
和常用
控件
对话框
是Windows应用程序
中
最重要的用户界面元素之一,是与用户交互的重要手段,在程 序运行过程
中
,
对话框
可用于扑捉用户的输入信息或数据。
对话框
是一个特殊类型的窗口,任何对窗口进行的操作(如:移动、最大化、最小化等)都可在
对话框
中
实施,一般来说,在
对话框
中
通过各种
控件
(如:按钮、编辑框、列表框、组合框等)来和用户进行交互。
控件
是在系统内部定义的用于和用户交互的基本单元。
一、
对话框
的使用
Visual C++提供的
对话框
编辑器能“可视”地进行设计、编辑,并可用
让C
Edit
控件
SetSel后
选
中
其
中
内容
利用类向导添加对
edit
控件
的消息EN_SETFOCUS void CSetselDlg::OnSetfocus
Edit
3() { // TODO: Add your control notification handler code here m_
Edit
.SetSel(0, -1); } 重载PreTranslateMessage,加上下列代码(m_
Edit
是
控件
变量): BOOL CSetselDlg::PreTranslateMessage(MSG* pM
界面
15,979
社区成员
115,897
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章