设为首页】 【加入收藏】 【网站地图】 【商品折扣
娱乐一生 娱乐明星
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
首页  |  java  |  .NET  |  C/C++  |  网页技术  |  php  |  asp  |  delphi  |  VC  |  VB开发  |  游戏开发  |  软件工程  |  Power Builder  |  Linux开发  |  Windows开发技巧
当前位置:首页 >> 位图操作 >> 如何向CImageList中加入位图文件

如何向CImageList中加入位图文件 -

 

在MFC中CImageList类封装了图象列表控件的功能,图象列表控件是相同大小图象的一个集合,用于应用程序中大规模图标的存储,该控件是不可见控件,通常与其它控件一起使用,来为其它控件提供图标资源。图象的每个集合中均以0为图象索引基数,可以把这些图标看成是以数组方式存储的,图像列表通常由大图标或位图构成,其中包含位图模式,实际上,所有的在同一个图象列表中的图标都被存储在一个屏幕设备的位图中。

通常向CImageList对象中添加图像元素的方法是:首先把图标或位图调入资源文件中,然后调用CImageList:Add方法加入到图象列表控件中,将位图装入资源导致可执行文件增大,不利于软件发行,而且只能使用资源中有限的位图,无法选取其它位图。要弥补使用资源位图的不足,就必须直接使用BMP位图文件。

使用下列代码即可实现:

HBITMAP hBitmap;

CBitmap *pBitmap;

CImageList *pImageList;

pImageList=new CImageList;

pImageList->Create (32,32,ILC_COLOR4,5,2);

pBitmap=new  CBitmap;

hBitmap=(HBITMAP)LoadImage(NULL,FilePathName,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);//FilePathName 是位图文件完整路径字符串

pBitmap->Attach (hBitmap);

pImageList->Add (pBitmap,RGB(0,0,0));

下面结合一个实例详细说明的用法:

例程解析:

例程基于一个对话框,单击对话框中的‘添加bmp’按钮弹出文件选择框,选择一个bmp文件,即可把选种bmp文件加入到列表控件中。在MFC中,CLIstCtrl类封装了列表控件,主要用来以各种方式显示一组数据记录供用户进行各种操作,列表中的记录可以包括多个数据项,也可以包括表示数据内容的大小图标,用来表示数据记录的各种属性,Windows资源管理器的右侧框架就是一个非常典型的列表控件。

      新建MFC AppWiazrd[exe]工程,工程名称ImageListAddBmp,点OK,选中Dialog based 点下一步,剩下的几步用缺省值,一直按下一步直到完成,工程建立完毕。按以下步骤设置几个变量,填写事件代码:

1. 在IDD_IMAGELISTADDBMP_DIALOG对话框中加入ClistCtrl控件和一个按纽,按纽Caption为“添加bmp”。

2. 使用类向导添加CtrlList控件变量m_ListCtrl。

3. 在CimageListAddBmpDlg类中添加下面两个公用变量:
int index;
CImageList *pImageList;

4. 在BOOL CImageListAddBmpDlg::OnInitDialog()初始化函数中,
// TODO: Add extra initialization here语句后面添加以下代码
  index=0;
  pImageList=new CImageList;
  pImageList->Create (32,32,ILC_COLOR4,5,2);
  m_ListCtrl.SetImageList (pImageList,LVSIL_NORMAL );

5. 在IDD_IMAGELISTADDBMP_DIALOG对话框中双击‘添加bmp’按钮,加入Onbutton1单击事件代码:
void CImageListAddBmpDlg::OnButton1()
{
// TODO: Add your control notification handler code here
  CString  FilePathName,FileName;
 CFileDialog dlg(TRUE);///TRUE为OPEN对话框,FALSE为SAVE AS对话框
 if(dlg.DoModal()==IDOK)
  {
    FilePathName=dlg.GetPathName();
    HBITMAP hBitmap;
    CBitmap *pBitmap;
    pBitmap=new CBitmap;
  hBitmap=(HBITMAP)LoadImage(NULL,FilePathName,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
    pBitmap->Attach (hBitmap);
    pImageList->Add (pBitmap,RGB(0,0,0));
    FileName=dlg.GetFileName ();
    m_ListCtrl.InsertItem (index,FileName,index);
    index++;
  }
}

到这里你可以编译运行了,在VC6.o下编译通过。

源代码可以发email来索取。

email:ljf518@163.net



 

娱乐图摘

更多 >>

靓丽清纯美女meimei

美女私房全裸照
导演劝女演员脱衣服(视频)

大胆火辣人体艺术写真(图)

黑丝妹妹热辣诱惑-丝袜美女妹妹

PLMM 漂亮妹妹图集-妹妹图库

全球美女图库-美女集中营

52MM 我爱漂亮妹妹-制服妹妹诱惑

图王图库-世界美女明星图片资料库
美女写真集锦

激情两性-解密性生活
浴室MM湿身内衣诱惑
邻家小妹洗澡被偷拍(视频)

热点文章

更多

· 如何向CImageList中加入位图文件
· 在VC中自建操作BMP位图文件的类
· 利用VC++实现WIN95/NT下位图淡入淡出的二种技巧
· BMP位图文件结构及VC操作
· VC实现对话框上信息的显示
· 如何在用户区显示一张位图
· 随心所欲改变窗口的图标
· 直接控制24位位图的象素(E)
· 显示JPG和GIF图片的简单方法
· 图像平滑滚动效果的VC实现

热点文章

更多