Windows滚动条类
来源:互联网 发布:重庆黑马程序员地址 编辑:程序博客网 时间:2024/06/13 18:58
前面的窗口滚动条只能出现在父窗口的固定地方,而滚动条控件能出现在父窗口的任何地方。
创建窗口滚动条控件:使用预定义的滚动条类(scrollbar),和两种滚动条样式SBS_VERT和SBS_HORZ。
例如:
case WM_CREATE: hWndScroll = CreateWindow(L"scrollbar", L"", WS_CHILD | WS_VISIBLE | SBS_VERT, 100, 100, 50, 200, hwnd, nullptr, hInst, 0); return 0;
这个滚动条的大小由50 200控制,出现的位置由100 100控制.
滚动条控件的尺寸不是固定的,而是可以任意的
如图:
滚动条控件不发送WM_COMMAND消息,而直接发送WM_VSCROLL和WM_HSCROLL消息,而区分窗口滚动条和滚动条控件 的参数是lParam,如果lParam==0就是窗口滚动条,如果等于滚动条窗口句柄就是滚动条控件
例如:
case WM_VSCROLL: if (lParam == 0) MessageBox(nullptr,L"滑动了窗口滚动条",L"",0); else MessageBox(nullptr, L"滑动了滚动条控件", L"", 0); break;
如图:
若想创建和窗口滚动条一样的尺寸,可以用如下两个函数获取滚动条大小
//获取水平滚动条的高度 GetSystemMetrics(SM_CYHSCROLL); //获取垂直滚动条的宽度 GetSystemMetrics(SM_CXVSCROLL);
例如:
case WM_CREATE: hWndScroll = CreateWindow(L"scrollbar", L"", WS_CHILD | WS_VISIBLE | SBS_VERT, 100, 100 , GetSystemMetrics(SM_CXVSCROLL), 200, hwnd, (HMENU)1, hInst, 0); return 0;
如图:
可以用与窗口滚动条同样的函数来设置滚动条控件的范围和位置,区别是SB_VERT、SB_HORZ改为SB_CTL
例如:
case WM_CREATE: hWndScroll = CreateWindow(L"scrollbar", L"", WS_CHILD|WS_VISIBLE|SBS_VERT,100,100,GetSystemMetrics(SM_CXVSCROLL), 200, hwnd, (HMENU)1, hInst, 0); //设置范围 SetScrollRange(hWndScroll, SB_CTL, 0, 200, TRUE); //设置滑块初始位置 SetScrollPos(hWndScroll, SB_CTL, ipos, TRUE); break;case WM_VSCROLL: switch (LOWORD(wParam)) { case SB_LINEUP: ipos -= 1; break; case SB_LINEDOWN: ipos += 1; break; //case SB_THUMBPOSITION: case SB_THUMBTRACK: ipos = HIWORD(wParam); default: break; } SetScrollPos(hWndScroll, SB_CTL, ipos, TRUE); break;
控件的句柄一定要是静态或者全局变量,否则以创建窗口后控件句柄就又被初始化了。
0 0
- Windows滚动条类
- Windows滚动条
- windows滚动条
- Windows程序设计 滚动条
- windows滚动条
- windows程序设计 滚动条
- 自定义Windows滚动条滚动动作
- Windows对话框和滚动条
- MFC----windows控件----滚动条
- Windows编程之滚动条
- windows程序设计(滚动条)
- 读书笔记 - Windows程序设计(滚动条)
- Windows滚动条响应笔记
- Windows编程之滚动条—滚动条消息
- 9.4 滚动条类
- 《Windows程序设计》读书笔记------------->>基本滚动条<<
- windows编程——滚动条
- 在Windows Mobile上使用滚动条
- 错误: -source 1.6 中不支持 diamond 运算符
- 版本判别,宏定义使用
- C语言学习笔记
- Kruskal算法C语言实现
- js常用方法和事件
- Windows滚动条类
- 相关子查询 与非相关子查询
- POJ 2686 状压dp
- Eclipse快捷键 10个最有用的快捷键
- 未解决
- JAVA设计模式之:责任链模式
- 如何通过右击ListView的Item弹出FlyoutMenu显示的Item的内容。
- java 读取Oracle的clob,blob转换为字符串
- MySql5.0安装步骤