高手别笑我,纠结一段日子了

chaochaohui 2010-08-15 03:14:32
我想实现的是单击编辑框,选中该编辑框内的文本内容
首先我用setfocus,但是不能实现该效果
经过高手们的指点,又通过派生类新增WM_LBUTTONDOWN事件(因为是自学,可能这个解决过程中有不懂的地方)

郁闷哪,简单的问题居然已经相关问题4,5个了还没解决,望赐教!或直接帮我远程下852198709
...全文
267 点赞 收藏 19
写回复
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
na2650945 2010-08-17
[Quote=引用 2 楼 dungeonsnd 的回复:]

MSDN->MFC Class CEidt->Members->SetSel...
[/Quote]
这个。
精辟。
回复
chaochaohui 2010-08-17
[Quote=引用 17 楼 hujian0602 的回复:]
默认添加的编辑框不就有双击全选的功能吗?干吗还搞个单击全选啊?就算你实现了那你想插入文字都不行了
[/Quote]
软件我已经实现了,我觉得单击全选很好啊,单击全选需要的概率比插入文字的概率要大得多
回复
chaochaohui 2010-08-16
[Quote=引用 15 楼 schlafenhamster 的回复:]
void CYourEdit 是叫你从CEdit派生一个YourEdit
在 CYourEdit::OnLButtonDown(UINT nFlags, CPoint point)里:
SetSel(0,-1)=this->SetSel(0,-1);//可以不要this
另外你要吧 “YourEdit.h"加到需要的地方。(即:#include “”)
[/Quote]
我再试试吧,这些都有的
回复
schlafenhamster 2010-08-16
void CYourEdit 是叫你从CEdit派生一个YourEdit
在 CYourEdit::OnLButtonDown(UINT nFlags, CPoint point)里:
SetSel(0,-1)=this->SetSel(0,-1);//可以不要this
另外你要吧 “YourEdit.h"加到需要的地方。(即:#include “”)
回复
chaochaohui 2010-08-16
[Quote=引用 13 楼 wang_zheguilai 的回复:]
引用 8 楼 wangyt 的回复:
C/C++ code
void CMyEdit::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CEdit::OnLButtonDown(nFlags, point);
this->……
[/Quote]
我看了下觉得应该可以,可是不知道为什么现在老是提示请确认项目中是否包含派生类的头文件这个提示,然后有错误编译不鸟
回复
senlinzhiwang 2010-08-16
[Quote=引用 8 楼 wangyt 的回复:]
C/C++ code
void CMyEdit::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CEdit::OnLButtonDown(nFlags, point);
this->SetSel(……
[/Quote]
这个不行吗?
回复
chaochaohui 2010-08-16
[Quote=引用 5 楼 schlafenhamster 的回复:]
void CYourEdit::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
SetSel(0,-1);

// CEdit::OnLButtonDown(nFlags, point);
}
[/Quote]
SetSel(0,-1)的作用对象都没有,这样写不行吧
回复
chaochaohui 2010-08-16
[Quote=引用 6 楼 schlafenhamster 的回复:]
其实上面的方法并不好,edit原来单击是有功能的。你要的功能实际上是edit的默认的双击功能。不知道你为什么要改为单击。
[/Quote]
获取焦点事件里这样写不对么this->SetSel(0,-1)
回复
chaochaohui 2010-08-16
[Quote=引用 7 楼 jennyvenus 的回复:]
俺一般是在其获得焦点时自动全选。
[/Quote]
这样的话最好了,可是我写出来不行啊,this->SetSel(0,-1)
回复
hujian0602 2010-08-16
默认添加的编辑框不就有双击全选的功能吗?干吗还搞个单击全选啊?就算你实现了那你想插入文字都不行了
回复
一名程序员 2010-08-15
void CMyEdit::OnLButtonDown(UINT nFlags, CPoint point) 
{
// TODO: Add your message handler code here and/or call default
CEdit::OnLButtonDown(nFlags, point);
this->SetSel(0,-1);
}
这样就可以了,注意以上语句的次序!
回复
俺一般是在其获得焦点时自动全选。
回复
schlafenhamster 2010-08-15
其实上面的方法并不好,edit原来单击是有功能的。你要的功能实际上是edit的默认的双击功能。不知道你为什么要改为单击。
回复
schlafenhamster 2010-08-15
void CYourEdit::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
SetSel(0,-1);

// CEdit::OnLButtonDown(nFlags, point);
}
回复
dungeonsnd 2010-08-15
MSDN->MFC Class CEidt->Members->SetSel...
回复
pjl110 2010-08-15
WM_LBUTTONDOWN事件处理函数里增加setsel这个函数。这个函数的意思是:设置选中!

函数参考:http://msdn.microsoft.com/en-us/library/w9kftda4(v=VS.71).aspx

另外,这个问题一点也不好笑!
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告
暂无公告