c# 2个RTB滚动条同步滚动难题
我用c#做了一个2个RTB滚动条同步滚动的程序RTB1滚动多少RTB2就滚动多少但碰到难题用的是下面的语句发送消息:SendMessage(richTextBox2.Ha...
我用c#做了一个2个RTB滚动条同步滚动的程序 RTB1滚动多少 RTB2就滚动多少 但碰到难题 用的是下面的语句发送消息:
SendMessage(richTextBox2.Handle, 0x115, 4 + 0x10000 * pos1, 0);
但这个只能发送整数的值 不能发送滚动条是1.1 1.5的值 , 而RTB好像在大文件时就有这样的值 大文件时他不是延长滚动条值 而是把1个值分成几份 这样有小数点了 可能要从内存中找同步的方法或用行数同步的方法 请问大家有什么方法吗
我发现RTB在显示大文件时滚动条的值会随着文件大小不同 而不同
如用向下方向键 移动内容一行 滚动条位置显示1
再按向下方向键 滚动条位置还是显示1 (像1.5行)
再按向下方向键 滚动条位置显示2
再按向下方向键 滚动条位置显示3
再按向下方向键 滚动条位置显示3(像3.5行)
这怎么搞 难怪在同步2个RTB滚动条时总是有的时候差半行
如果文件还要足够大 可能会一1.1行
测试了一下 文件小于300k地址和数据基本能对准 但已经有点不在一条直线上了 有什么改进办法 点击滚动条再大的文件都能对准同步 方向键 翻页键也能对齐 就 msg=0x20A或用上面的语句发送消息鼠标滚轮就不能对齐 点击滚动条肯定有特殊的信息发生 能找到吗能编个代码代替点击滚动条动作吗
可能你没编过 首先得到RTB1的滚动条值就是整数 你没法得到1.5值
只能得到1 1 2 3 3 4 5这样的值 能分页吗 能得到分页值吗
int pos1 = GetScrollPos(richTextBox1.Handle, 1); //垂直滚动条位置 展开
SendMessage(richTextBox2.Handle, 0x115, 4 + 0x10000 * pos1, 0);
但这个只能发送整数的值 不能发送滚动条是1.1 1.5的值 , 而RTB好像在大文件时就有这样的值 大文件时他不是延长滚动条值 而是把1个值分成几份 这样有小数点了 可能要从内存中找同步的方法或用行数同步的方法 请问大家有什么方法吗
我发现RTB在显示大文件时滚动条的值会随着文件大小不同 而不同
如用向下方向键 移动内容一行 滚动条位置显示1
再按向下方向键 滚动条位置还是显示1 (像1.5行)
再按向下方向键 滚动条位置显示2
再按向下方向键 滚动条位置显示3
再按向下方向键 滚动条位置显示3(像3.5行)
这怎么搞 难怪在同步2个RTB滚动条时总是有的时候差半行
如果文件还要足够大 可能会一1.1行
测试了一下 文件小于300k地址和数据基本能对准 但已经有点不在一条直线上了 有什么改进办法 点击滚动条再大的文件都能对准同步 方向键 翻页键也能对齐 就 msg=0x20A或用上面的语句发送消息鼠标滚轮就不能对齐 点击滚动条肯定有特殊的信息发生 能找到吗能编个代码代替点击滚动条动作吗
可能你没编过 首先得到RTB1的滚动条值就是整数 你没法得到1.5值
只能得到1 1 2 3 3 4 5这样的值 能分页吗 能得到分页值吗
int pos1 = GetScrollPos(richTextBox1.Handle, 1); //垂直滚动条位置 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询