|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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;
看不明白 ???? 哪位大佬帮讲讲 谢谢了!!!!
|
|