乐筑天下

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

VBA中的ImageCombo

[复制链接]

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

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

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

18

主题

222

帖子

51

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
260
发表于 2007-9-3 05:22:09 | 显示全部楼层
它必须是图像组合吗?
如果您使用ListView代替,您可以设置每行文本的颜色并以此代替结束...
RED
BLUE
GREEN
etc等
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

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

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

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2007-9-3 10:06:06 | 显示全部楼层
我不是VB'r,但是..
单元格有背景色吗
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2007-9-3 10:21:55 | 显示全部楼层
我已经弄清楚了如何动态地将一个图像添加到ImageList,然后添加到ImageCombo,我还弄清楚了如何动态地创建一个位图图像,通过用特定的颜色填充一个表单,然后将它复制到位图结构中。在没有一个控件可见的情况下,我还没有用特定的颜色填充图像结构。
无论如何,我认为解决方法是用特定的颜色填充内存中的位图结构。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2007-9-4 08:50:10 | 显示全部楼层
在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:12:39 | 显示全部楼层
我必须仔细看看...相当有趣...
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-6 01:06 , Processed in 0.920303 second(s), 66 queries .

© 2020-2025 乐筑天下

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