读书笔记 - Windows程序设计(滚动条)
来源:互联网 发布:高性能笔记本 编程 编辑:程序博客网 时间:2024/06/07 03:14
1.滚动条的产生
创建窗口时,在窗口风格标识符包括 WS_VSCROLL 或者 WS_HSCROLL, 就会出现滚动条。hwnd = CreateWindow (szAppName, TEXT ("标题"), WS_OVERLAPPEDWINDOW | WS_VSCROLL | WS_HSCROLL, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL) ;WS_VSCROLL 垂直滚动条WS_HSCROLL 水平滚动条
2.滚动条消息
LRESULT CALLBACK WindowProc( HWND hwnd, // handle to window UINT uMsg, // WM_VSCROLL | WS_HSCROLL WPARAM wParam, // request and position LPARAM lParam // handle to scroll bar (HWND));wParam low-order 保存用户行为 high-order 保存当前的位置,如果低阶的行为不是 SB_THUMBPOSITION or SB_THUMBTRACK,那么就不用理会WM_VSCROLL 垂直滚动条消息 switch(LOWORD(wParam)) { case SB_BOTTOM: //滚到底 case SB_LINEUP: //向上滚动一行 case SB_LINEDOWN: //向下滚动一行 case SB_PAGEUP: //向上滚动一页 case SB_PAGEDOWN: //向下滚动一页 case SB_THUMBTRACK: //拖动滚动条 case SB_TOP: //滚到顶 }WS_HSCROLL 水平滚动条消息 switch(LOWORD(wParam)) { case SB_ENDSCROLL: //滚动结束 case SB_LINELEFT: //向左滚动一行 case SB_LINERIGHT: //向右滚动一行 case SB_PAGELEFT: //向左滚动一页 case SB_PAGERIGHT: //向右滚动一页 case SB_THUMBPOSITION: //拖动滚动条 }
3.滚动条API
//结构体参数typedef struct tagSCROLLINFO { UINT cbSize; //设为 sizeof(SCROLLINFO) UINT fMask; //要设置或者获取的值 int nMin; //范围最小值 int nMax; //范围最大值 UINT nPage; //页面大小 int nPos; //当前位置 int nTrackPos; //当前追随位置} SCROLLINFO, *LPSCROLLINFO; typedef SCROLLINFO CONST *LPCSCROLLINFO;fMask SIF_ALL 包括SIF_PAGE, SIF_POS, SIF_RANGE, and SIF_TRACKPOS. SIF_PAGE 可用于指定或获取页面大小 SIF_POS 可用于指定或获取滑块条当前位置 SIF_RANGE 可用于指定或获取滑块条min 跟 max 范围 SIF_TRACKPOS 在SetScrollInfo 中被忽略
//SetScrollInfo 可以设置滚动条的 包括最小和最大滚动位置, 页面大小, 滚动条的位置int SetScrollInfo( HWND hwnd, // 窗口句柄 int fnBar, // SB_HORZ 或 SB_VERT LPCSCROLLINFO lpsi, // 结构体 BOOL fRedraw // 是否重绘 );//调用例子//设置垂直滑块条范围跟滑块条大小 SCROLLINFO si ; si.cbSize = sizeof(si); //结构体大小,微软用来判断API版本,因为有的时候版本参数不一样 si.fMask = SIF_PAGE | SIF_RANGE; //操作行为 设置页面 跟 范围 si.nMin = 0; //最小范围 si.nMax = 100; //最大范围 si.nPage = 50; //页面大小 SetScrollInfo(hwnd, SB_HORZ, &si, TRUE);//设置垂直滑块条位置 SCROLLINFO si ; si.cbSize = sizeof(si); si.fMask = SIF_POS; //操作行为 设置滑块条位置 si.nPos = 100; //位置 SetScrollInfo(hwnd, SB_VERT, &si, TRUE);
//GetScrollInfo 可以获取滚动条的 包括最小和最大滚动位置, 页面大小, 滚动条的位置 BOOL GetScrollInfo( HWND hwnd, // 窗口句柄 int fnBar, // SB_HORZ 或 SB_VERT LPSCROLLINFO lpsi // 结构体 ); //调用例子//获取滑块条所有信息 SCROLLINFO si ; si.cbSize = sizeof(si); si.fMask = SIF_ALL; //获取滑块条所有信息 GetScrollInfo(hwnd, SB_VERT, &si);
//滚动窗口BOOL ScrollWindow( HWND hWnd, // 窗口句柄 int XAmount, // 滚动x位置 int YAmount, // 滚动y位置 CONST RECT *lpRect, // 指定滚动区域,为NULL客户区整体滚动 CONST RECT *lpClipRect // clipping rectangle );
0 0
- 读书笔记 - Windows程序设计(滚动条)
- 《Windows程序设计》读书笔记------------->>基本滚动条<<
- windows程序设计读书笔记之滚动条
- Windows程序设计 滚动条
- windows程序设计 滚动条
- 《Windows程序设计》读书笔记------------->>滚动条使用(翻译自MSDN)<<
- windows程序设计(滚动条)
- 《Windows程序设计》读书笔记之二——输出文字与滚动条使用
- 《windows程序设计》(三)-------滚动条编程
- windows程序设计(5)使用滚动条
- windows程序设计 更好的滚动条
- Windows程序设计--设置滚动条详解一
- Windows程序设计--设置滚动条详解二
- windows程序设计-滚动条的实现
- MFC Windows程序设计学习笔记--滚动条
- windows程序设计(13):给滚动条加上键盘响应
- Windows滚动条
- windows滚动条
- 2016第七届蓝桥杯C/C++ B组省赛题解
- PHP底层的运行机制与原理
- 设计模式学习笔记——状态模式
- RuntimeException和Exception区别
- 7.5 Javascript:表单验证-正则补充
- 读书笔记 - Windows程序设计(滚动条)
- hdu 2952 Counting Sleep (深度搜索)
- Android 如何获取一个layout实例
- c++单例模式
- Oracle归档日志管理
- 关于Hibernate中的update报org.hibernate.HibernateException: No Session found for current thread
- Android RecyclerView使用简单介绍
- 解决项目开发过程中JS 缓存问题
- Java二分查找