- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CImageList.
使用 CImageList 由 CImageList 类表示的图像列表是相同大小的图像的集合,每个图像可以通过其索引来引用。图像列表用于有效管理大的图标或位图集。由于图像列表不是窗口,它们本身并不是控件;但它们和几种不同类型的控件一起使用,包括列表控件 (List Control) (CListCtrl)、树控件 (Tree Control) (CTreeCtrl) 和选项卡 (TabControl) 控件 (CTabCtrl)。 图像列表中的所有图像包含在屏幕设备格式的单个宽位图中。图像列表也可能包括单色位图,该位图包含用于透明地绘制图像(图标样式)的屏蔽。CImageList 提供的成员函数使您得以绘制图像,创建和销毁图像列表,添加和移除图像,替换图像,合并图像,以及拖动图像。 图像列表的类型 有两种类型的图像列表 (CImageList):非屏蔽的和屏蔽的。“非屏蔽的图像列表”由包含一个或多个图像的色位图构成。“屏蔽的图像列表”由相同大小的两个位图构成。第一个是包含图像的色位图,第二个是包含一系列屏蔽的单色位图(一个屏蔽对应第一个位图中的一个图像)。 Create 成员函数的一个重载采用一个标志来指示图像列表是否是屏蔽的。(其他重载创建屏蔽的图像列表)。 绘制非屏蔽图像时,只是简单地将其复制到目标设备上下文,即在设备上下文的现有背景色上绘制图像。绘制屏蔽图像时,图像位和屏蔽位组合,一般在位图中产生显露目标设备上下文背景色的透明区域。绘制屏蔽图像时可以指定几种绘图样式。例如,可以指定图像进行抖色处理以指示选定的对象。 使用图像列表 图像列表的典型用法遵循下面的模式: 构造 CImageList 对象,调用其 Create 函数的一个重载来创建图像列表并将图像列表附加到 CImageList 对象。 如果在创建图像列表时没有添加图像,则调用 Add 或 Read 成员函数向图像列表添加图像。 通过调用控件的适当成员函数,将图像列表与此控件相关联,或者您自己使用图像列表的 Draw 成员函数绘制图像列表中的图像。 或许允许用户使用图像列表的内置拖动支持拖动图像。 注意???如果图像列表是用 new 运算符创建的,则在操作完 CImageList 对象后必须销毁它。 操作图像列表 Replace 成员函数用新的图像替换图像列表 (CImageList) 中的图像。如果需要动态增加图像列表对象中的图像数,该函数也有用。SetImageCount 函数动态更改存储在图像列表中的图像数。如果增加图像列表的大小,请调用 Replace 向新图像槽添加图像。如果减少图像列表的大小,则释放超过新大小的图像。 Remove 成员函数移除图像列表中的图像。Copy 成员函数可以在图像列表内复制或交换图像。该函数使您得以指示是否应将源图像复制到目标索引,还是应交换源图像和目标图像。 若要通过合并两个图像列表来创建新的图像列表,请使用 Create 成员函数的适当重载。该 Create 重载合并现有图像列表的第一个图像,并将所得到的图像存储在新的图像列表对象中。通过在第一个图像上透明地绘制第二个图像来创建新图像。新图像的屏蔽是对两个现有图像的屏蔽位执行逻辑 OR 运算的结果。 该操作一直重复到所有图像都合并并添加到新的图像列表对象中。 可以调用 Write 成员函数将图像信息写入存档,并通过调用 Read 成员函数读回。 GetSafeHandle、Attach 和 Detach 成员函数使您得以操作附加到 CImageList 对象的图像列表句柄,而 DeleteImageList 成员函数删除图像列表但不销毁 CImageList 对象 绘制图像列表中的图像 若要绘制图像,请使用 CImageList::Draw 成员函数。您将需要指定指向设备上下文对象的指针,要绘制的图像的索引,设备上下文中绘制图像的位置,以及一组指示绘图样式的标志。 指定 ILD_TRANSPARENT 样式后,Draw 使用一个两步进程来绘制屏蔽的图像。首先,它对图像位和屏蔽位执行逻辑 AND 运算。然后,它对第一个运算的结果和目标设备上下文的背景位执行逻辑 XOR 运算。该进程在结果图像中创建透明区域;也就是说,屏蔽中的每一个空白位使结果图像中相应的位成为透明。 在纯色背景上绘制屏蔽图像之前,应使用 SetBkColor 成员函数将图像列表的背景色设置为和目标一样的颜色。设置此颜色可消除在图像中创建透明区域的必要,使得 Draw 可以只需将图像复制到目标设备上下文中,从而极大地提高性能。若要绘制此图像,请在调用 Draw 时指定 ILD_NORMAL 样式。 可以随时为屏蔽图像列表 (CImageList) 设置背景色,使它能在任何纯背景上进行正确绘制。默认情
文档评论(0)