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

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

郁闷哪,简单的问题居然已经相关问题4,5个了还没解决,望赐教!或直接帮我远程下852198709
...全文
285 19 打赏 收藏 举报
写回复
19 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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);
}
这样就可以了,注意以上语句的次序!
智能卡_Snooper 2010-08-15
  • 打赏
  • 举报
回复
俺一般是在其获得焦点时自动全选。
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

1.6w+

社区成员

VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
帖子事件
创建了帖子
2010-08-15 03:14
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……