>>>>>>>>> 阻止 RichEdit 选中整段文字 <<<<<<<<<<<<<<<<

symansoft 2005-08-04 08:23:12

各位好:
在 RichEdit控件中,在某文字上快速三次按鼠标左键时,整段文字将被选中,如何判断这个三击(不是双击)鼠标的动作及如何阻止RichEdit选中整段文字呢?
谢谢!
...全文
78 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
symansoft 2005-08-05
  • 打赏
  • 举报
回复
恐怕没有你说的这么简单吧,我要求的是禁止选中整段文字,并非选中了再取消,因为那样的话就会引起闪烁。

再说,你的方法也不好,调节selstart等属性更简单。
bluejingling 2005-08-04
  • 打赏
  • 举报
回复

樓主,我為你的程序測試了半個多小時:
把下面的代碼放到RichEdit的 MouseUp 事件中:


if x=0 then //x=0表示mouse在最左邊,注意:把 richedit1 改為你自己命名的richedit ^_^
begin
//光標 向右
sendmessage(richedit1.Handle,WM_KEYDOWN, VK_RIGHT,0); //wm_Keydown是按下
sendmessage(richedit1.Handle,WM_KEYUP, VK_RIGHT,0); //wm_keyup 是松開

//再向左
sendmessage(richedit1.Handle,WM_KEYDOWN, VK_LEFT,0); //wm_Keydown是按下
sendmessage(richedit1.Handle,WM_KEYUP, VK_LEFT,0); //wm_keyup 是松開

end;

效果:
在左邊按mouse時,程序依然後選擇全部文本,但執行上述代碼時,程序會驪上取消選擇

不明之處,請聯繫
bluejingling@tom.com
or :
http://www.tanyong.com

希望樓主把另外一個帖子中的分也送給我!
xixuemao 2005-08-04
  • 打赏
  • 举报
回复
TO: bluejingling

能说明白些吗?什么时候发送呢?还是实时发送?
bluejingling 2005-08-04
  • 打赏
  • 举报
回复
我告訴樓主一個主意:
用sendkey或其它函數模擬發送一個 <-- (向左的光標鍵),再發送一個向右的光標鍵,這樣,Mouse就不會再自動選擇了.

至於向左向右的光標鍵鍵值,好像是, 左為:37 右為:39

我不記得sendkey的使用方法了,你用一下
keybd_event(0, MapVirtualKey(0,0), 0,0);

請樓主給我至少80分!
xixuemao 2005-08-04
  • 打赏
  • 举报
回复
那个好像不是三击的事件(没找到哈)

好像是双击后在某一个时间内再单击,它就会按选中整段文本。

关注一下.......

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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