乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 105|回复: 7

VBA中的ImageCombo

[复制链接]

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2007-8-31 21:48:02 | 显示全部楼层 |阅读模式
有没有人幸运地使用ImageCombo在每一行上显示一个色样?我想重复“的行为”;当前颜色“;组合框。如果我想创建数百万个样例并将其加载到imagelist中,我可以这样做,但我想动态地编写彩色图像。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2007-9-3 05:22:09 | 显示全部楼层
它必须是图像组合吗
如果使用列表视图,则可以设置每行文本的颜色,并以红色、蓝色等结尾
回复

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2007-9-3 09:50:24 | 显示全部楼层

它不'不一定是这样,但我希望复制默认的AutoCAD行为。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2007-9-3 10:06:06 | 显示全部楼层
本人'我不是VB'r,但是
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2007-9-3 10:21:55 | 显示全部楼层
据我所知,ImageCombo不支持多列,如果支持,我可以使用API调用来更改单元格的颜色
现在,我已经创建了所有基本AutoCAD颜色的样例,并将其包含在imagelist中
如果我能找到一种方法来动态创建图像,然后将其加载到imagelist中,那将是理想的解决方案。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2007-9-4 08:50:10 | 显示全部楼层
我已经了解了如何将图像动态添加到ImageList,然后添加到ImagCombo,我还了解了如何通过使用特定颜色填充表单,然后将其复制到位图结构中来动态创建位图图像。我仍然有039;t设法用特定的颜色填充图像结构,而没有控件已经可见
无论如何,我认为解决方案是用特定颜色填充内存中的位图结构。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2007-9-6 08:12:39 | 显示全部楼层
在Xtreme VB Talk网站上进行了快速搜索。也许是这样
  1. Type GUID
  2.   Data1 As Long
  3.   Data2 As Integer
  4.   Data3 As Integer
  5.   Data4(7) As Byte
  6. End Type
  7. Private Declare Function CreateStreamOnHGlobal Lib "ole32.dll" (ByRef hGlobal As Any, ByVal fDeleteOnResume As Long, ByRef ppstr As Any) As Long
  8. Private Declare Function OleLoadPicture Lib "olepro32.dll" (ByVal lpStream As IUnknown, ByVal lSize As Long, ByVal fRunMode As Long, ByRef riid As GUID, ByRef lplpObj As Any) As Long
  9. Private Declare Function CLSIDFromString Lib "ole32.dll" (ByVal lpsz As Long, ByRef pclsid As GUID) As Long
  10. ' HKEY_CLASSES_ROOT\Interface\{7BF80980-BF32-101A-8BBB-00AA00300CAB} = IPicture
  11. Private Const SIPICTURE As String = "{7BF80980-BF32-101A-8BBB-00AA00300CAB}"
  12. ' convert a byte array to IPicture
  13. Public Function PictureFromRes(ByRef b() As Byte) As IPicture
  14.   On Error GoTo errorhandler
  15.   
  16.   Dim istrm As IUnknown
  17.   Dim tGuid As GUID
  18.   
  19.   If Not CreateStreamOnHGlobal(b(LBound(b)), False, istrm) Then
  20.     CLSIDFromString StrPtr(SIPICTURE), tGuid
  21.     OleLoadPicture istrm, UBound(b) - LBound(b) + 1, False, tGuid, PictureFromRes
  22.   End If
  23.   
  24.   Set istrm = Nothing
  25.   Exit Function
  26. errorhandler:
  27.   Debug.Print "Could not convert to IPicture!"
  28. End Function

回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2007-9-6 08:23:14 | 显示全部楼层
本人'我得再仔细看一看……很有趣……
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-6 01:36 , Processed in 0.545718 second(s), 68 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表