|
列表视图
列表视图元素是以行和列形式呈现可垂直滚动的项集合。
数据水平堆叠,直到把宽度填满,然后继续下一行填充。
是一个图标+文本展示的元素。类似于图标列表框,但又支持分组显示等功能(十分强大)
1.设计窗口界面
准备工作设计如上图界面并绑定成员和事件
2.设置默认数据
这里封装了一个列表视图_添加项目成员函数,方便后面调用
看代码是不是很简单啊
3.实现按Ctrl和滚动滚轮放大缩小项目功能
思考:有滚轮二字是不是就得有个滚轮的事件?然后在里面判断Ctrl健,按下并滚动滚轮就放大和缩小项目
- {
- 函数 UI事件 整型 鼠标滚动_列表视图1(元素句柄 来源句柄, 整型 nFlags,POINT *pPt,逻辑型 *是否拦截)
- {
- 如果 ((nFlags &MK_CONTROL) != MK_CONTROL)//判断是否按下Ctrl健
- {
- 返回 0//如果没有按下返回,不执行后面的代码
- }
- 正短整型 距离 = nFlags >> 16
- SIZE 项大小
- 如果 (距离 == 120)
- {
- 如果 (成员_项目大小 > 10)//向下 放大
- {
- _列表视图1.取项大小(&项大小)
- 项大小.cx = 项大小.cx - 5
- 项大小.cy = 项大小.cy - 5
- _列表视图1.置项大小(项大小.cx, 项大小.cy)
- 成员_项目大小 -= 5
- }
- }
- 否则()
- {
- 如果 (成员_项目大小 < 35)//向上 缩小
- {
- _列表视图1.取项大小(&项大小)
- 项大小.cx = 项大小.cx + 5
- 项大小.cy = 项大小.cy + 5
- _列表视图1.置项大小(项大小.cx, 项大小.cy)
- 成员_项目大小 += 5
- }
- }
- *是否拦截 = 真
- 返回 0
- }
- }
复制代码 代码如上,最后的拦截表示不交给界面系统处理直接返回
MK_CONTROL表示Ctrl键被按下,为系统宏所有这里申明一下#外部宏即可
4.取选择文本
- 函数 UI事件 整型 按钮点击_按钮_取文本(元素句柄 来源句柄, 逻辑型* 是否拦截)
- 整型 项数量 = _列表视图1.取选择项数量()
- 如果(项数量 == 0)
- 返回 0
- 列表视图项ID结构 *项ID = new 列表视图项ID结构[项数量]
- _列表视图1.取选择项全部(项ID, 项数量)
- 计次循环 (整型 i = 0; 项数量)
- 调试输出(_列表视图1.项取文本(项ID[i].组索引, 项ID[i].项索引, 1))
- delete 项ID
- 返回 0
复制代码 解释:
第4句:列表视图项ID结构 *项ID = new 列表视图项ID结构[项数量]
申请了一个多少个项数量的列表视图项ID结构数组内存指针
第7句:输出每个数组的值
第8句:最后释放内存
其他的按钮事件都简单可以自行试试写一下
怎么样?你学废了吗?源码如下
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|