如何在点击editbox一下的时候,让里面的文字高亮?

hoco 2003-04-13 10:21:04
本来我觉得直接在EditBox获得焦点的时候,在其响应函数
OnSetFocusEdit()中,加入以下代码:
m_edit->SetSel(0,-1);
通过这样的方式来实现。
但是不知道为什么不行,:(
而且我加了AfxMessageBox();调试过,很奇怪的是,
我点击EditBox一下,然后出来了很多条AfxMessageBox的提示框,怎么回事啊?
但是如果我在OnButton()里面加入
m_edit->SetSel(0,-1);
却可以实现,这是怎么回事呢?
...全文
51 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hoco 2003-04-13
  • 打赏
  • 举报
回复
但是怎么响应啊?
在Dlg主界面中如何响应呢?
hoco 2003-04-13
  • 打赏
  • 举报
回复
哦,明白了!:)
谢谢了!
hoco 2003-04-13
  • 打赏
  • 举报
回复
yinsong6(张银松)
那么如果我想要实现这样的功能,该怎么办呢?
我本来是想响应CEdit的OnLButtonDown()函数的,但是不知道怎么响应啊!
yinsong6 2003-04-13
  • 打赏
  • 举报
回复
注意是派生CEdit 类。
yinsong6 2003-04-13
  • 打赏
  • 举报
回复
还是告诉你吧,如下看一看
void cmyedit::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
BOOL bfocused=TRUE;//是否原来就有焦点
if(GetFocus()==this)
bfocused=TRUE;
else
bfocused=FALSE;

CEdit::OnLButtonDown(nFlags, point);

if(!bfocused)
SetSel(0,-1);
}
yinsong6 2003-04-13
  • 打赏
  • 举报
回复
出现很多 AfxMessageBox的提示框 是因为 对话框一出现 edit便失去Focus,而对话框一结束,edit便又 有了Focus,所以就会又出现对话框,

它不选择,是因为程序先执行OnFocus(),然后执行 OnLButtonDow(),这样就失去了选择的内容。

并且这个选择代码没有必要写,当你按Tab键使Edit具有焦点时,它的内容就会被全部选中
FlyingSch 2003-04-13
  • 打赏
  • 举报
回复
UP
我也想知道。不如再调用一下Invalidate()
alphapaopao 2003-04-13
  • 打赏
  • 举报
回复
你的代码可能出现了ASSERT,导致相关的失败。

============================================================================
http://www.betajin.com/alphasun/index.htm 给我发信息请附带原帖地址
http://alphasun.18en.com/ http://shakingtoolkit.9126.com/
DocWizard C++程序文档自动生成工具 | Wave OpenGL | HttpProxy | AjaxParser词法分析
yinsong6 2003-04-13
  • 打赏
  • 举报
回复
创建CEdit派生类后,在对话框中为Edit控件添加变量 CMyEdit m_edit; 这样Edit控件的消息就会执行你派生的代码。

15,978

社区成员

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

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