选择显示字体大小

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等。

  (二)图像控制的应用技巧

  对于图像控制,同样不能单独使用,必须与列表控制、树控制和标签控制相互结合应用,下面分别介绍其具体应用技巧。

  1、图像控制在列表控制中的应用技巧

  ①设置图像控制clistctrl::setimagelist的调用格式如下:

cimagelist* setimagelist( cimagelist* pimagelist, int nimagelist );

  其返回值是指向前一个图像列表控制的一个指针,如果不存在前一个图像列表则为null;其中参数pimagelist是指向图像列表的标识,nimagelist是图像列表的类型,可以是如下值:

  lvsil_normal 用大图标方式进行图像列表;

  lvsil_small 用小图标方式进行图像列表;

  lvsil_state 以图像状态进行图像列表;

  ②取得图像控制clistctrl::getimagelist的调用格式如下:

cimagelist* getimagelist( int nimagelist ) const;

  其返回值为指向图像列表控制的指针,其中nimagelist用来确定取得返回值的图像列表的 值,其取值与设置图像列表函数相同。

  ③图像控制在列表控制中的应用示例

  cimagelist cil1,cil2; //定义大小图标像列表

  cvclistapp *papp=(cvclistapp *)afxgetapp();//取得列表控制程序

  cil1.create(32,32,true,2,2); //建立32位图像控制

  cil1.add(papp->loadicon(idi_gj));//增加选中状态图像

  cil1.add(papp->loadicon(idi_xs));//增加非选中状态图像

  cil2.create(16,16,true,2,2); //建立16位图像控制

  cil2.add(papp->loadicon(idi_gj));//增加选中状态图像

  cil2.add(papp->loadicon(idi_xs));//增加非选中状态图像

  m_listctrl.setimagelist(&cil1,lvsil_normal);//设置大图标控制

  m_listctrl.setimagelist(&cil2,lvsil_small);//设置小图标控制

  2、图像控制在树控制中的应用技巧

  ①设置图像控制ctreectrl::setimagelist的调用格式如下:

cimagelist* setimagelist( cimagelist * pimagelist, int nimagelisttype );

  其返回值为指向前前一个图像列表的指针,否则为null;参数pimagelist为指向图像列表的标识,如果pimagelist为null则所有的图像都将从树控制中被清除;nimagelisttype为图像列表设置的类型,可以是如下值之一:

  tvsil_normal 设置正常图像列表,其中包括选中和非选中两种图标;

  tvsil_state 设置图像列表状态,指用户自定义状态;

  ②取得图像控制ctreectrl::getimagelist的调用格式如下:

cimagelist* getimagelist( uint nimage );

  如果调用成功则返回图像列表控制指针,否则为null;nimage为取得返回值的图像列表类型,其取值和取得图像列表控制完全相同。

  ③图像控制在树控制中的应用示例

cimagelist cil1,cil2;//定义大小图标像列表

cvctreeapp *papp=(cvctreeapp *)afxgetapp();//获取应用程序指针

cil1.create(16,16,ilc_color,2,2);//建立图像控制

cil1.add(papp->loadicon(idi_pm));//增加选中状态图像

cil1.add(papp->loadicon(idi_cj));//增加非选中状态图像

m_treectrl.setimagelist(&cil1,tvsil_normal);//设置图像控制列表

  然后在树控制的结构定义中进行如下设置:

tcitem.item.iimage=0; //设置未选中图像索引

tcitem.item.iselectedimage=1;//设置选中时图像引号

  3、图像控制在标签控制中的应用技巧

  ①设置图像控制ctabctrl::setimagelist的调用格式

cimagelist * setimagelist( cimagelist * pimagelist );

  其返回值为指向前一个图像列表的指针,如果不存在前一个图像列表则为null;pimagelist为标识tab控制的图像列表指针。

  ②取得图像控制ctabctrl::getimagelist的调用格式

himagelist getimagelist() const;

  其返回值为指向tab控制的图像列表指针,如果调用不成功则为null。

  其应用技巧较前两种更加简单,这里不再赘述。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons