SOUI官方论坛

 找回密码
 立即注册
查看: 365|回复: 0

SListCtrl表头控件如何设置排序按钮?适合SListCtrl、SMcListView

[复制链接]
  • TA的每日心情
    开心
    前天 22:51
  • 签到天数: 946 天

    [LV.10]以坛为家III

    581

    主题

    1343

    帖子

    2万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    28876
    发表于 2021-3-9 11:25:46 | 显示全部楼层 |阅读模式
    void SetItemSort(int iItem,SHDSORTFLAG stFlag);
    在SListCtrl中直接调用此方法即可,完全可实现自己排序,效果如下
    2021-03-09_110707.png

    顺便讲一下历程,
    SOUI2中是有简单列表这个控件的,SListCtrl,这个用来显示简单表格可以,但复杂的很麻烦,要自己去再扩展才行,建议大家新项目时直接用SMcListView。这也是SOUI作者的初衷,在SOUI3的demo中已经取消了SListCtrl
    2021-03-09_111218.png
    通过对比发现,两者同样使用了header(在SOUI3中,mclistveiw的表头控件换成了headerstyle),也就是本身SListCtrl的表头也是可以显示排序按钮的,这里就留下了一线生机!
    一开始是想看看demo中两个控件的排序过程,想依照写一下,看代码发现,demo中的排序方式是在表格中维护了数据,
    2021-03-09_111549.png
    使用时再取出,最后还要delete
    2021-03-09_111746.png
    由于我使用SListCtrl比较暴力,用一个控件显示多种表格,就涉及到数据清理问题,为了不惹麻烦,我这里也不用其自带的排序了,数据完全自己处理,只让SListCtrl显示就行了,大家别学我,这个太Low了,新项目别这么干
    pHeader->SetItemSort(e->iItem,ST_UP);
    这样设置就是向上的图标,由于图标大小和列头高度不匹配,就成这样了,后面就是改皮肤了。

    再贴一个demo中mclistvew的排序代码
    2021-03-09_112245.png
    上面两个箭头就是清空所有排序,只设置某一列的排序,下面的箭头就是sort时根据传入的正序还是逆序进行排序的,其它想交流的就跟贴就行

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

    本版积分规则

    QQ|Archiver|手机版|小黑屋|SOUI官方论坛

    GMT+8, 2024-5-18 15:28

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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