炫彩界面库论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 194|回复: 2

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

[复制链接]
  • TA的每日心情
    难过
    2021-3-17 08:38
  • 发表于 2024-2-28 08:47:32 | 显示全部楼层 |阅读模式
    本帖最后由 易团雪 于 2024-2-28 09:08 编辑

    列表视图
    列表视图元素是以行和列形式呈现可垂直滚动的项集合。
    数据水平堆叠,直到把宽度填满,然后继续下一行填充。
    是一个图标+文本展示的元素。类似于图标列表框,但又支持分组显示等功能(十分强大)
    1.设计窗口界面
    QQ图片20240228080112.png
    准备工作设计如上图界面并绑定成员和事件
    2.设置默认数据
    QQ图片20240228082320.png
    这里封装了一个列表视图_添加项目成员函数,方便后面调用
    看代码是不是很简单啊
    3.实现按Ctrl和滚动滚轮放大缩小项目功能

    思考:有滚轮二字是不是就得有个滚轮的事件?然后在里面判断Ctrl健,按下并滚动滚轮就放大和缩小项目
    [C++] 纯文本查看 复制代码
    {
            函数 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.取选择文本
    [C++] 纯文本查看 复制代码
            函数 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句:最后释放内存
    其他的按钮事件都简单可以自行试试写一下

    怎么样?你学废了吗?源码如下
    游客,如果您要查看本帖隐藏内容请回复



  • TA的每日心情
    可爱
    2024-1-7 19:28
  • 发表于 2024-3-6 01:24:25 | 显示全部楼层
    学习了~~~
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    QQ|Archiver|手机版|小黑屋|炫彩界面库 ( 鄂ICP备2023014763号-1 )

    GMT+8, 2024-5-2 14:54 , Processed in 0.071474 second(s), 21 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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