+ -
当前位置:首页 → 问答吧 → 我想拦截RichEdit的OnChange事件,不知道这是什么消息呢?

我想拦截RichEdit的OnChange事件,不知道这是什么消息呢?

时间:2011-12-11

来源:互联网

我想让2个RichEdit的滚动条能够同步

已经通过拦截WM_VSCROLL使得在操作第2个RichEdit的滚动条时同步了;

现在的问题是,我在第2个RichEdit中随着输入字符的增多,滚动条会逐渐向下,
但这时2个RichEdit却不能同步,我想通过拦截RichEdit的OnChange事件来实现
这个同步,不知道OnChange事件对于那个什么Windows消息呢?

或者,有没有更好的方案来解决这个同步问题呢?

希望高手能给出代码(我水平太低了)

作者: learnlife   发布时间: 2011-12-11

研究不是很多,因为滚动条消息中包含滚动条的位置,所以你的两个控件的消息实际上是不同的
以前做过list的滚动同步,实际上也是因为两个list的内容位置和count不同,所以采用的是设定listbox的selectindex来实现的
如果Lz想要用消息的话,至少要分析出两个滚动条的行数和当前位置,然后要把消息中的wParam修改后再传过去才行

作者: funxu   发布时间: 2011-12-12

查了下百度,Lz可以按照如下规则修改消息中的wparam
当wParam的低位字是SB_THUMBTRACK时,wParam的高位字是用户拖动滑块的当前位置。该位置处于滚动条范围的最大值和最小值之间。当wParam的低位字是SB_THUMBPOSITION时,wParam的高位字是用户松开鼠标键时滑块的最终位置。对于其他的滚动条动作,wParam的高位字应被忽略。

作者: funxu   发布时间: 2011-12-12



你看看这是不是你想要的!我帮你写好demo啦!

下载地址:
http://www.ctdisk.com/file/3484999

作者: jayqiang   发布时间: 2011-12-12