QQ登录

只需一步,快速开始

登录 | 立即注册 | 找回密码

主题

帖子

荣誉

新鱼友

Rank: 1

积分
55
查看: 219|回复: 1

SCROLLINFO 滚动的问题

[复制链接]
最佳答案
0 
累计签到:1 天
连续签到:1 天
SillyMe 发表于 2017-10-16 02:57:55 2191 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
垂直滑动块

通过 SCROLLINFO 来滚动

在 WM_CREATE 消息中获得
    1.字体宽度
    2.字体高度
        3.变宽字体宽度

在 WM_SZIE 消息中获得
        1.客户区宽度
        2.客户区高度
       
        3.设置 SCROLLINFO 结构 最大值 最小值 一页需要移动的记录(客服区高度/字体高度)
       
        4.使用 SetScrollInfo(hwn, SB_VERT, &si, TRUE);  进行保存设置
       
在 WM_VSCROLL 消息中改变 滑块的位置

        1.获得当前滑块的位置
        2.对滑块事件做偏移处理
        3.保存滑块的位置
        4.对比滑块的位置是否改变
                1.滚动窗口 ScrollWindow(hwnd, 0, (改变前的位置 - 改变后的位置)*字体高度, NULL, NULL);
                2.更新窗口 UpdateWindow(hwnd);
               
在 WM_PAINT 消息 中处理
       
        0.获得设备环境句柄  hdc 及 填充 PAINTSTRUCT 结构
       
        1.获得当前滑块的位置
       
        2.计算出失效区域的信息
                1. 失效区域开始 = max(0, 滑块的位置 + 失效区域的顶部/字体高度)
                                保证 开始索引 最小 为 0
                               
                2.失效区域开始 = min(MUNLINES - 1, 滑块的位置 + 失效区域的底部/字体高度)
                                保证 开始索引 最大 为 MUNLINES - 1
                               
        从上面我们获得了 需要重新 绘制 的索引
       
        然后开始 绘制
       
                TextOut(hdc, X轴距, Y轴距, 需要重绘的信息, 重绘信息的数量)
               
                        X 轴 是 关于 水平 滑动条的 我们这里 无视
               
                        *重点 Y 轴距
                                怎么确定需要重绘的区域
                            视频里是 (i-yPos)*yChar;
                                看不明白  ???? 哪位大佬帮讲讲 谢谢了!!!!
       
楼层
跳转到指定楼层
最佳答案
208 
累计签到:159 天
连续签到:8 天
BngThea 发表于 2017-10-27 16:24:36 | 显示全部楼层
(i-yPos)*yChar
首先,yChar 表示的是每行的高度
为什么是 i - yPos ?
i 表示的是文本的第 i 行
yPos此时表示垂直滚动条的位置
因为是往上滚动时应该为负数,此时行数变为:  i +(- yPos)
往下滚动时应该为正数,此时行数变为: i - (+ yPos)
很明显,两种情况都可以写作 i - yPos

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐 上一条 /1 下一条

    移动客户端下载(未启用)
    微信公众号

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备11014136号

Copyright 2018 鱼C论坛 版权所有 All Rights Reserved.

Powered by Discuz! X3.1 Copyright
© 2001-2018 Comsenz Inc.    All Rights Reserved.

小黑屋|手机版|Archiver|鱼C工作室 ( 粤公网安备 44051102000370号 | 粤ICP备11014136号

GMT+8, 2017-11-25 06:15

快速回复 返回顶部 返回列表