递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 1096|回复: 9
打印 上一主题 下一主题

[视窗] 图片组类

[复制链接]

86

主题

947

帖子

4884

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4884
跳转到指定楼层
楼主
发表于 2024-9-10 12:19:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<火山程序 类型 = "通常" 版本 = 1 />

类 图片组类 <折叠>
{
    变量 m_图片组 <类型 = 变整数>

    方法 类_初始化
    {

    }

    方法 类_清理
    {
        本对象.销毁 ()
    }

    方法 销毁 <公开>
    {
        如果 (m_图片组 != 0)
        {
            @ ImageList_Destroy((HIMAGELIST)@<m_图片组>);
            m_图片组 = 0
        }
    }

    方法 创建 <公开 类型 = 变整数 注释 = "先创建" @禁止流程检查 = 真>
    参数 每个图像的宽度 <类型 = 整数>
    参数 每个图像的高度 <类型 = 整数>
    {
        @ @<m_图片组> = (INT_P)ImageList_Create(@<每个图像的宽度>,@<每个图像的高度>,32,0,0);
        返回 (m_图片组)
    }

    方法 绑定超级列表框 <公开 注释 = "再绑定">
    参数 超级列表框句柄 <类型 = 变整数>
    参数 图像列表类型 <类型 = 整数 注释 = "0=LVSIL_NORMAL; //大图标的图像列表" 注释 = "1=LVSIL_SMALL;  //小图标的图像列表"
            注释 = "2=LVSIL_STATE;  //状态图像的图像列表" 注释 = "3=LVSIL_GROUPHEADER;  //组标头的图像列表" @默认值 = 1>
    {
        常量 LVM_SETIMAGELIST <类型 = 整数 值 = @LVM_SETIMAGELIST 注释 = "4099">
        变量 超级列表框背景色 <类型 = 整数>
        @ SendMessage ((HWND)@<超级列表框句柄>, LVM_SETIMAGELIST,(WPARAM)@<图像列表类型>, (LPARAM)@<m_图片组>);
        @ @<超级列表框背景色> = (INT)SendMessage ((HWND)@<超级列表框句柄>, LVM_GETBKCOLOR, 0, 0);
        置背景颜色 (超级列表框背景色)
    }

    方法 添加图标字节集 <公开 类型 = 整数 @禁止流程检查 = 真>
    参数 图标 <类型 = 字节集类>
    {
        变量 位图 <类型 = 位图对象类>
        变量 位图句柄 <类型 = 变整数>
        位图 = 位图对象类.载入位图数据 (图标)
        如果 (位图.为空 ())  // 载入失败!
        {
            返回 (-1)
        }
        位图句柄 = 位图.取句柄值 ()
        @ return ImageList_Add ((HIMAGELIST)@<m_图片组>, (HBITMAP)@<位图句柄>, NULL);
        // ImageList_Add 函数将位图复制到内部数据结构. 请务必在函数返回后使用 DeleteObject 函数删除 hbmImage 和 hbmMask .
        // https://learn.microsoft.com/zh-c ... mctrl-imagelist_add

    }

    方法 添加图标句柄 <公开 类型 = 整数 返回值注释 = "如果成功,则返回图像的索引,否则返回 -1。" @禁止流程检查 = 真>
    参数 图标句柄 <类型 = 变整数>
    {
        @ return ImageList_AddIcon((HIMAGELIST)@<m_图片组>,(HICON)@<图标句柄>);
    }

    方法 移除图标 <公开 类型 = 逻辑型 @禁止流程检查 = 真>
    参数 图片索引 <类型 = 整数 注释 = "要移除的图像的索引。 如果此参数为 -1,则 函数将删除所有图像。">
    {
        @ return ImageList_Remove((HIMAGELIST)@<m_图片组>, @<图片索引>);
    }

    方法 置背景颜色 <公开 类型 = 整数 返回值注释 = "返回之前的背景色" @禁止流程检查 = 真>
    参数 背景色 <类型 = 整数>
    {
        @ return (int)ImageList_SetBkColor((HIMAGELIST)@<m_图片组>,(COLORREF)@<背景色>);
    }

    #
}


回复

使用道具 举报

8

主题

403

帖子

2071

积分

核心用户

无敌天真火山掉渣天的小白

Rank: 9Rank: 9Rank: 9

积分
2071
沙发
发表于 2024-9-10 15:44:13 | 只看该作者
我去我去
你还是代码截个图上来好看一点。。。。。
这个你看着不麻吗?
回复

使用道具 举报

86

主题

947

帖子

4884

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4884
板凳
 楼主| 发表于 2024-9-10 16:07:46 | 只看该作者
kingsoft 发表于 2024-9-10 15:44
我去我去
你还是代码截个图上来好看一点。。。。。
这个你看着不麻吗?

复制就能用了...省事..
回复

使用道具 举报

33

主题

284

帖子

2339

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2339
地板
发表于 2024-9-10 17:35:19 | 只看该作者
感谢楼主分享,楼主是个好人
回复

使用道具 举报

86

主题

947

帖子

4884

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4884
5#
 楼主| 发表于 2024-9-10 18:55:59 | 只看该作者
兵三进一 发表于 2024-9-10 17:35
感谢楼主分享,楼主是个好人

嘀~好人卡
回复

使用道具 举报

5

主题

245

帖子

1358

积分

金牌会员

Rank: 6Rank: 6

积分
1358
6#
发表于 2024-9-10 20:51:09 来自手机 | 只看该作者
早就说了缺这个图片组操作类。今天他来了
回复

使用道具 举报

33

主题

284

帖子

2339

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2339
7#
发表于 2024-9-10 21:41:39 | 只看该作者
guangye1 发表于 2024-9-10 20:51
早就说了缺这个图片组操作类。今天他来了

易语言可以设置超级列表框背景图片,希望高手们分享出来
回复

使用道具 举报

32

主题

293

帖子

1182

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
1182
8#
发表于 2024-9-11 00:26:26 | 只看该作者
呀呀呀 牛逼啊.,
回复

使用道具 举报

5

主题

245

帖子

1358

积分

金牌会员

Rank: 6Rank: 6

积分
1358
9#
发表于 2024-9-11 07:03:23 来自手机 | 只看该作者
兵三进一 发表于 2024-9-10 21:41
易语言可以设置超级列表框背景图片,希望高手们分享出来

.版本 2

.子程序 置超级列表框背景图片, 整数型, 公开
.参数 超级列表框句柄, 整数型
.参数 图片路径, 文本型
.参数 横坐标, 整数型, 可空
.参数 纵坐标, 整数型, 可空
.参数 图片显示方式, 整数型, 可空, 0为通常,非0为平铺。
.参数 不透明, 逻辑型, 可空, 默认为“假”,即在文字后面仍可看到图片。
.局部变量 临时, LVBKIMAGE
.局部变量 ret, 整数型

.判断开始 (图片显示方式 = 0)
    临时.ulFlags = #LVBKIF_SOURCE_URL
.默认
    临时.ulFlags = 位或 (#LVBKIF_STYLE_TILE, #LVBKIF_SOURCE_URL)
.判断结束
临时.hbm = 0
临时.pszImage = 图片路径
临时.cchImageMax = 取文本长度 (临时.pszImage) + 1
临时.xOffsetPercent = 横坐标
临时.yOffsetPercent = 纵坐标
ret = SendMessageA_LVBKIMAGE (超级列表框句柄, #LVM_SETBKIMAGE, 0, 临时)
.如果真 (不透明 = 假)
    SendMessageA (超级列表框句柄, #LVM_SETTEXTBKCOLOR, 0, #CLR_NONE)
.如果真结束
返回 (ret)
回复

使用道具 举报

33

主题

284

帖子

2339

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2339
10#
发表于 2024-9-11 07:54:22 | 只看该作者
guangye1 发表于 2024-9-11 07:03
.版本 2

.子程序 置超级列表框背景图片, 整数型, 公开

是我表达错了,我的意思是易语言可以给超级列表框设置背景图片,
希望高手们分享一个火山版的超级列表框设置背景图片
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-23 05:50 , Processed in 0.093496 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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