实在没辙了 快点来帮忙看看 关于CRichEditCtrl控件滚动条的动态实现和隐藏

xuelinger 2010-04-12 10:51:05
CRichEditCtrl控件滚动条的动态实现和隐藏
即鼠标移进时显示,移出时隐藏。
我重载了CRichEditCtrl控件,在OnMouseMove中
ShowScrollBar(nBar, TRUE);//nBar为SB_BOTH SB_HORZ SB_VERT
在父窗口的OnMouseMove中
m_Edit.ShowScrollBar.ShowScrollBar(nBar, FALSE);


CRichEditCtrl控件 当拥有水平滚动条和垂直滚动条,和只拥有水平滚动条时一切都正常
但是当只设置了垂直滚动条,不拉动滚动条也还正常,

一拉动滚动条,鼠标移出时,控件就会不停的闪,我调试了一下是父窗口的OnMouseMove
被不停的调用,即使鼠标没有移动也是如此

这是为什么?
...全文
264 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuelinger 2010-04-23
  • 打赏
  • 举报
回复
没有 感觉没有把法解决 就放弃了
向立天 2010-04-22
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 xuelinger 的回复:]
不好意思 最近忙其他的事情 谢谢版主的答复 我会尽快结贴的
[/Quote]

问题解决了?
xuelinger 2010-04-22
  • 打赏
  • 举报
回复
不好意思 最近忙其他的事情 谢谢版主的答复 我会尽快结贴的
向立天 2010-04-14
  • 打赏
  • 举报
回复
不好意思
我又试了一下
我是用\n换行的
所以确实没问题
自动换行确实有问题
我发现RichEdit每次隐藏垂直滚动条之前都是要显示完整行
自动换行就会定位的这些行的顶端
我想你可不可以这样
在RichEdit外面再作一个对话框
大小和其相同
当鼠标移入时缩小edit以显示滚动条
当鼠标移出时扩大edit以隐藏滚动条
xuelinger 2010-04-13
  • 打赏
  • 举报
回复
我的还是那样 把你的工程发给我可不可以,我对比一下 可能是哪里没设置对吧我的邮箱:huihui0102@tom.com
向立天 2010-04-12
  • 打赏
  • 举报
回复
这两个消息未公开
需要手动添加
参考一下这篇文章吧
http://blog.csdn.net/movayhust/archive/2009/08/29/4496744.aspx
xuelinger 2010-04-12
  • 打赏
  • 举报
回复
没可看到WM_MOUSELEAVE、WM_MOUSEHOVER系列消息啊 怎么添加
向立天 2010-04-12
  • 打赏
  • 举报
回复
为什么要在控件中和父窗口内分别使用ShowScrollBar?
你可以用WM_MOUSELEAVE、WM_MOUSEHOVER系列消息
向立天 2010-04-12
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 xuelinger 的回复:]
你拉一下滚动条 再把鼠标移出来 试一试 不拉他是没有问题
[/Quote]

我拉了
没有问题
对了
我把Vertical Scroll设成true了
然后在OnInitDialog里m_Edit.ShowScrollBar(SB_VERT, FALSE);
xuelinger 2010-04-12
  • 打赏
  • 举报
回复
你拉一下滚动条 再把鼠标移出来 试一试 不拉他是没有问题
FireBirdCN 2010-04-12
  • 打赏
  • 举报
回复
m_richedit.LineScroll(1);
向立天 2010-04-12
  • 打赏
  • 举报
回复
我试了一下
没有问题啊
鼠标移动到滚动条上的时候确实会有闪烁
因为滚动条已经是非客户区了
所以应该再处理一下相应的消息
xuelinger 2010-04-12
  • 打赏
  • 举报
回复
不信 你试一试 很快的 就这么几段代码 我都被折磨死了
向立天 2010-04-12
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 xuelinger 的回复:]
另外 我发现 普通的CEdit控件 都能没问题 就是richedit在只有垂直滚动条是出状况
[/Quote]

那就奇怪了
xuelinger 2010-04-12
  • 打赏
  • 举报
回复
另外 我发现 普通的CEdit控件 都能没问题 就是richedit在只有垂直滚动条是出状况
xuelinger 2010-04-12
  • 打赏
  • 举报
回复
是啊 是这样设置的有什么问题吗
向立天 2010-04-12
  • 打赏
  • 举报
回复
你是分别做了三个richedit?
2的时候
Multiline应为true
Auto VScroll为true
Auto HScroll为false
xuelinger 2010-04-12
  • 打赏
  • 举报
回复

设置了Multiline
1 只有水平滚动条时 设置了Auto HScroll Horizontal Scroll
2 只有垂直滚动条时 Auto VScroll、 Vertical Scroll

3 水平垂直滚动条都有时 上面四项都选

要实现的就是鼠标移出时 滚动条隐藏 移进时显示 1 、3很容易就实现了
2 老是出问题
向立天 2010-04-12
  • 打赏
  • 举报
回复
你的richedit的属性是怎么设置的?
我说的是Auto HScroll, Auto VScroll,Multiline这几个
另外
你为什么要实现这个效果呢?
xuelinger 2010-04-12
  • 打赏
  • 举报
回复
原来当只设置了垂直滚动条,不拉动滚动条也还正常,

一拉动滚动条,鼠标移出时,控件就会不停的闪,我调试了一下是父窗口的OnMouseMove
被不停的调用,即使鼠标没有移动也是如此


控件里的文本无滚动条时是不会自动换行的 有的时候才会


加载更多回复(4)

15,979

社区成员

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

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