win32滚动优化笔记
来源:互联网 发布:单页面淘宝客 编辑:程序博客网 时间:2024/06/02 00:30
内容:
在滚动条原来代码的基础上进行修改:
1、增加结构体:
typedef struct tagSCROLLINFO
{
UINT cbSize ;// 结构体的大小(字节)
UINT fMask ; // values to set or get
int nMin ; // minimum range value
int nMax ; // maximum range value
UINT nPage ; // page size
int nPos ; // current position
int nTrackPos ;// current tracking position
}
SCROLLINFO, * PSCROLLINFO ;
2、在WM_SIZE中对结构体si进行初始化:
cyClient = HIWORD (lParam) ; si.cbSize = sizeof (si) ; si.fMask = SIF_RANGE | SIF_PAGE ; si.nMin = 0 ; si.nMax = 99 ; si.nPage = cyClient / cyChar ; SetScrollInfo (hwnd, SB_VERT, &si, TRUE) ; return 0 ;
3、在WM_PAINT中,锁定一个区域进行绘制,并且要对内存进行分配和设置掩码
相关代码:
si.cbSize = sizeof (si) ;
si.fMask = SIF_POS ;
4、
a:在WM_VSCORLL 中要对当前滚动条的位置进行记录
iVertPos = si.nPos ;
b:增加功能函数 ScrollWindow (hwnd, 0, cyChar * (iVertPos - si.nPos), NULL, NULL) ; 用以对滚动条的比例饿进行优化。
5、获取滚动条和设置滚动条:
SetScrollInfo (hwnd, SB_VERT, &si, TRUE) ;
GetScrollInfo (hwnd, SB_VERT, &si) ;
6:SIF_ALL 旗标是 SIF_RANGE、SIF_POS、SIF_PAGE 和 SIF_TRACKPOS 的组合。
优化后的滚动条的整体框架代码:
include
include
- win32滚动优化笔记
- win32滚动笔记
- WIN32滚动条
- WIN32滚动条
- 【win32】滚动条 初探
- Win32 滚动条显示文本
- (WIN32 滚动条) SetScrollInfo 函数
- win32 滚动条 显示文本
- win32 (SDK) 垂直滚动条
- ListView滚动优化
- 优化UITableView滚动速度
- 优化UITableView滚动速度
- 滚动数组优化陷阱
- android listView 滚动优化
- 优化UITableView滚动性能
- iOS tableView滚动优化
- UITableView滚动优化
- UITableView滚动性能优化
- char *a="hello";
- strcpy函数
- win32框架
- 滚动条学习笔记
- win32滚动笔记
- win32滚动优化笔记
- win32 键盘事件
- 抽象方法和虚方法
- 结构体和类
- get\set用来访问类的属性。
- IEnumerable和IEnumerator 详解
- 详解C# 迭代器
- Coroutines in Unity3d (C# version)----在unity3D中的协同(基于C#)
- C#之旅(二): IEnumerable IEnumerator