找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 203|回复: 1

[图文教程] 零基础进阶篇-010-列表视图元素

[复制链接]

63

主题

217

回帖

1012

积分

管理员

积分
1012
发表于 2024-7-17 17:39:29 | 显示全部楼层 |阅读模式
列表视图
列表视图元素是以行和列形式呈现可垂直滚动的项集合。
数据水平堆叠,直到把宽度填满,然后继续下一行填充。
是一个图标+文本展示的元素。类似于图标列表框,但又支持分组显示等功能(十分强大)
1.设计窗口界面

准备工作设计如上图界面并绑定成员和事件
2.设置默认数据

这里封装了一个列表视图_添加项目成员函数,方便后面调用
看代码是不是很简单啊
3.实现按Ctrl和滚动滚轮放大缩小项目功能

思考:有滚轮二字是不是就得有个滚轮的事件?然后在里面判断Ctrl健,按下并滚动滚轮就放大和缩小项目
  1. {
  2.         函数 UI事件 整型 鼠标滚动_列表视图1(元素句柄 来源句柄, 整型 nFlags,POINT *pPt,逻辑型 *是否拦截)
  3.         {
  4.                 如果 ((nFlags &MK_CONTROL) != MK_CONTROL)//判断是否按下Ctrl健
  5.                 {
  6.                         返回 0//如果没有按下返回,不执行后面的代码
  7.                 }
  8.                 正短整型 距离 = nFlags >> 16
  9.                 SIZE 项大小
  10.                 如果 (距离 == 120)
  11.                 {
  12.                         如果 (成员_项目大小 > 10)//向下 放大
  13.                         {
  14.                                 _列表视图1.取项大小(&项大小)
  15.                                 项大小.cx = 项大小.cx - 5
  16.                                 项大小.cy = 项大小.cy - 5
  17.                                 _列表视图1.置项大小(项大小.cx, 项大小.cy)
  18.                                 成员_项目大小 -= 5
  19.                         }
  20.                 }
  21.                 否则()
  22.                 {
  23.                         如果 (成员_项目大小 < 35)//向上 缩小
  24.                         {
  25.                                 _列表视图1.取项大小(&项大小)
  26.                                 项大小.cx = 项大小.cx + 5
  27.                                 项大小.cy = 项大小.cy + 5
  28.                                 _列表视图1.置项大小(项大小.cx, 项大小.cy)
  29.                                 成员_项目大小 += 5
  30.                         }
  31.                 }
  32.                 *是否拦截 = 真
  33.                 返回 0
  34.         }
  35. }
复制代码
代码如上,最后的拦截表示不交给界面系统处理直接返回
MK_CONTROL表示Ctrl键被按下,为系统宏所有这里申明一下#外部宏即可
4.取选择文本
  1. 函数 UI事件 整型 按钮点击_按钮_取文本(元素句柄 来源句柄, 逻辑型* 是否拦截)
  2.         整型 项数量 = _列表视图1.取选择项数量()
  3.         如果(项数量 == 0)
  4.                 返回 0
  5.         列表视图项ID结构 *项ID = new 列表视图项ID结构[项数量]
  6.         _列表视图1.取选择项全部(项ID, 项数量)
  7.         计次循环 (整型 i = 0; 项数量)
  8.                 调试输出(_列表视图1.项取文本(项ID[i].组索引, 项ID[i].项索引, 1))
  9.         delete 项ID
  10.         返回 0
复制代码
解释:
第4句:列表视图项ID结构 *项ID = new 列表视图项ID结构[项数量]

申请了一个多少个项数量的列表视图项ID结构数组内存指针
第7句:输出每个数组的值
第8句:最后释放内存
其他的按钮事件都简单可以自行试试写一下

怎么样?你学废了吗?源码如下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

2

主题

7

回帖

69

积分

注册会员

积分
69
发表于 2024-8-22 18:37:56 | 显示全部楼层
列表的最后一列,跟剩余部分合并铺满,如何实现?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|炫语言 | 炫彩界面库 | 用户所需, 正是我所做! ( 鄂ICP备2023014763号-1 )

GMT+8, 2024-11-21 20:12 , Processed in 0.069814 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表