VC通用控件编程之CImageList控件

图像列表控制(CImageList)是相同大小图像的一个集合,每个集合中均以0为图像的索引序号基数,图像列表通常由大图标或位图构成,其中包含透明位图模式。可以利用WINDOWS32位应用程序接口函数API来绘制、建立和删除图像,并能实现增加、删除、替换和拖动图像等操作。图像列表控制提供了控制图像列表的基本方法,这些方法在WINDOWS95及以后版本才能实现。

(一)图像控制的对象结构

1、图像控制的数据成员

m_hImageList 连接图像对象的控制句柄

2、图像控制的建立方法

CimageList&imageList建立图像控制对象结构

Create 初始化图像列表并绑定对象

图像控制的建立方法如下:

BOOL Create( int cx, int cy, UINT nFlags, int nInitial, int nGrow );
BOOL Create( UINT nBitmapID, int cx, int nGrow, COLORREF crMask );
BOOL Create( LPCTSTR lpszBitmapID, int cx, int nGrow, COLORREF crMask );
BOOL Create( CImageList& imagelist1, int nImage1, CImageList& imagelist2
,int nImage2,int dx, int dy );

其中各项参数的含义为:cx定义图像的宽度,单位为象素;cy定义图象的高度,单位为象素;nFlags确定建立图像列表的类型,可以是以下值的组合:ILC_COLOR、ILC_COLOR4、ILC_COLOR8、ILC_COLOR16、ILC_COLOR24、ILC_COLOR32、ILC_COLORDDB和ILC_MASK;nInitial用来确定图像列表包含的图像数量;nGrow用来确定图像列表可控制的图像数量。

NbitmapID 用来确定图像列表联系的位图标志值;crMask表示颜色屏蔽位;

LpszBitmapID 用来确定包含位图资源的标识串;

imagelist1 指向图像列表控制对象的一个指针;nImage1图像列表1中包含的图像数 量;imagelist2指向图像列表控制对象的一个指针;nImage2图像列表2中包含的图像数量;dx表示以象素为单位的图像宽度;dy表示以象素为单位的图像高度。

同样,图像控制的建立也包括两个步骤,首先建立图像列表结构,然后建立图像列表控制。

3、图像控制的属性类

图像控制的属性类包括返回m_hImageList.控制句柄GetSafeHandle、取得图像列表中的图像数量GetImageCount、设置图像列表的背景颜色SetBkColor、取得图像列表的背景颜色SetBkColor和取得图像的有关信息SetBkColor。

4、图像控制的操作方法

图像控制的操作方法包括将一个图像列表绑定到一个对象上Attach、将对象上的图像列表解除绑定并返回句柄Detach、删除一个图像列表DeleteImageList、将一个图像增加到图像列表中Add和将一个图像从图像列表中删除Remove等。

时间: 2024-10-02 16:49:38

VC通用控件编程之CImageList控件的相关文章

VC通用控件编程之CSlider控件

滑动条控制(Slider Control)也叫轨道条控制,其主要是用一个带有轨道和滑标的小窗口以及窗口上的刻度,来让用户选择一个离散数据或一个连续的数值区间.通过鼠标或键盘来进行数据的选择操作,这在WIN98/95中的很多应用程序中都可以看到,如控制面板中的鼠标等,滑动条既可以是水平方式的也可以是垂直方式的.滑动条控制的风格如下: TBS_HORZ 滑动条是水平方向的 TBS_VERT 滑动条是垂直方向的 TBS_LEFT 滑动条位于窗口左侧 TBS_RIGHT 滑动条位于窗口右侧 TBS_TO

Android编程之Button控件用法实例分析_Android

本文实例讲述了Android编程之Button控件用法.分享给大家供大家参考,具体如下: 一.Button概述 android.widget.Button直接继承于android.wdiget.TextView. 直接子类有:CompoundButton. 间接子类有:CheckBox,RadioButton,Switch,ToggleButton. Button类表示一个"按钮"控件."按钮"控件可以被用户按下或者点击,来触发另一个操作. 二.Button的用法

Android编程之Button控件配合Toast控件用法分析_Android

本文实例讲述了Android编程之Button控件配合Toast控件用法.分享给大家供大家参考,具体如下: 在本章教程中,我们将会学习Button控件的使用,同时顺便说一下Toast提示控件. 在Android程序开发中,我们使用最多的用户交互控件可能就是Button的了,而我们使用最多的事件估计也就是onclick事件了. 这些事件也是最简单的事件,我们一般通过google自带的API接口就可以调用了,我们具体看看怎么做吧. 第一步.新建一个工程Ep.Toast,活动和主视图名称我都使用默认的

Android编程之Button控件用法实例分析

本文实例讲述了Android编程之Button控件用法.分享给大家供大家参考,具体如下: 一.Button概述 android.widget.Button直接继承于android.wdiget.TextView. 直接子类有:CompoundButton. 间接子类有:CheckBox,RadioButton,Switch,ToggleButton. Button类表示一个"按钮"控件."按钮"控件可以被用户按下或者点击,来触发另一个操作. 二.Button的用法

基于VC.NET的GDI+编程之CImage

我们知道,Visual C++的CBitmap类和静态图片控件的功能是比较弱的,它只能显示出在资源中的图标.位图.光标以及图元文件的内容,而不像VB中的Image控件可以显示出绝大多数的外部图像文件(BMP.GIF.JPEG等).因此,想要在对话框或其他窗口中显示外部图像文件则只能借助于第三方提供的控件或代码.现在,MFC和ATL共享的新类CImage为图像处理提供了许多相应的方法,这使得Visual C++在图像方面的缺憾一去不复返了. CImage类概述 CImage是MFC和ATL共享的新

vc-VC、Matlab混合编程之VC界面上显示Matlab窗口

问题描述 VC.Matlab混合编程之VC界面上显示Matlab窗口 各位大神,VC中如何获取隐藏窗口的句柄,FindWindow()为什么不行呢?还有VC和matlab混个编程中怎么样在VC中找到隐藏了的matlab窗口句柄?求赐教 解决方案 Matlab VC C++ 混合编程MATLAB与VC混合编程VC与Matlab混合编程

adodc-用ADO控件编的一个简易学生成绩管理器,运行时显示找不到可安装的ISAM,求解决

问题描述 用ADO控件编的一个简易学生成绩管理器,运行时显示找不到可安装的ISAM,求解决 Private Sub Command1_Click() On Err GoTo MyErr If Command1.Caption = "添加" Then Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" Text5.Text = &qu

vc++在MFC对话框上用程序生成控件(比如Text和Edit控件),求如何实现?

问题描述 vc++在MFC对话框上用程序生成控件(比如Text和Edit控件),求如何实现? vc++我想在MFC对话框上用程序生成控件(比如Text和Edit控件),求如何实现?(不是用工具条拖动控件到对话框上) 1.用程序生成控件2.控件在对话框上准确定位 求大神指导下 解决方案 一个 CreateWindow() 就能搞定,例子很多,自己找. 解决方案二: MFC我没有研究过,但我想MFC中应该可以调用Win32API吧,可以看看这几个,虽然不是MFC,但是在MFC里想必是可以用的.htt

看实例学VFP:模拟VB控件数组操作标签控件

VB中有控件数组,使用它可以批量设置控件的属性,这个东西最直接的作用就是可以简化代码.今天我们在vfp中模拟VB控件数组,操作vfp中最基本的控件之一:标签控件(label).在vfp基础教程-标签控件(label)一文中对该控件的属性及用途等已经有比较详尽地描述,关于它实在是没有什么好说的了. 本文设计的这个例子是这样的:在表单激活时(Activate事件),采用类似vb控件数组的处理方式在循环语句中为各个标签设置属性,如下图1:在命令按钮的click事件中,通过单击将5个标签的caption