递归火山软件开发平台

标题: 图片组类 [打印本页]

作者: 小蜗牛    时间: 2024-9-10 12:19
标题: 图片组类
<火山程序 类型 = "通常" 版本 = 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)@<背景色>);
    }

    #
}



作者: kingsoft    时间: 2024-9-10 15:44
我去我去
你还是代码截个图上来好看一点。。。。。
这个你看着不麻吗?
作者: 小蜗牛    时间: 2024-9-10 16:07
kingsoft 发表于 2024-9-10 15:44
我去我去
你还是代码截个图上来好看一点。。。。。
这个你看着不麻吗?

复制就能用了...省事..
作者: 兵三进一    时间: 2024-9-10 17:35
感谢楼主分享,楼主是个好人
作者: 小蜗牛    时间: 2024-9-10 18:55
兵三进一 发表于 2024-9-10 17:35
感谢楼主分享,楼主是个好人

嘀~好人卡
作者: guangye1    时间: 2024-9-10 20:51
早就说了缺这个图片组操作类。今天他来了
作者: 兵三进一    时间: 2024-9-10 21:41
guangye1 发表于 2024-9-10 20:51
早就说了缺这个图片组操作类。今天他来了

易语言可以设置超级列表框背景图片,希望高手们分享出来
作者: 拒绝吃鱼的猫    时间: 2024-9-11 00:26
呀呀呀 牛逼啊.,
作者: guangye1    时间: 2024-9-11 07:03
兵三进一 发表于 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)

作者: 兵三进一    时间: 2024-9-11 07:54
guangye1 发表于 2024-9-11 07:03
.版本 2

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

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




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4