关于CImageList,我有几个问题:
1)一般的创建图象列表资源都是横向的图,对于垂直方向的图怎么创建呢?
2)一行的图象资源很容易创建到图象列表中,对于多行多列的图如何创建成图象列表呢?
3)怎样把两个图象列表连起来?我试验了CImageList::Copy函数,按照MSDN上的做,
结果不能实现把其中一个列表中的图象单元附加到另外一个之中请大家指点一下,最好有示例代码,谢谢先
1)一般的创建图象列表资源都是横向的图,对于垂直方向的图怎么创建呢?
2)一行的图象资源很容易创建到图象列表中,对于多行多列的图如何创建成图象列表呢?
3)怎样把两个图象列表连起来?我试验了CImageList::Copy函数,按照MSDN上的做,
结果不能实现把其中一个列表中的图象单元附加到另外一个之中请大家指点一下,最好有示例代码,谢谢先
解决方案 »
- 在分割窗口中使用DataGrid的问题
- 关于组件对象的问题?
- VC6.0下配置好boost,link是出现问题,急望高手指教
- send unicode 的问题
- 请问:实现类似photoshop中的工具栏是不是用CToolBar
- 如何在txt文件中写入double型数据?
- 一个我不会的小问题
- dll里调用对话框资源,当该对话框中有第三方ActiveX时如何调用该对话框?
- 关于timer的问题
- 我想问一问一个WINDOWS程序在DOS提示符下带参数初始运行是怎么实现的?比如:cmd:xxx.exe -arg1 -arg2<CR>
- 谁能够写出这个面试题啊? 大家来看看吧!
- 请问如何用程序设置WINDOWS的环境变量
2)也没有所谓的多行多列的图象列表
3) 连接2个imagelist。
试试:
CImageList tmpList;
tmpList.Create( imglist1,0,imglist2,0, 0,0 );//后面2个参数,不晓得。你可以查一下msdn
extern CImageList* pmyImageList;
// The pointer to another image list.
extern CImageList* pmyImageList2;// Copy the first image from pmyImageList2 and make it
// the first image of pmyImageList.
pmyImageList->Copy(0, pmyImageList2, 0, ILCF_MOVE);// Recopy the new image of pmyImageList to make it also
// the last image in pmyImageList.
// Recopy the image to make it also the last image in pmyImageList.
pmyImageList->Copy(pmyImageList->GetImageCount()-1,
(UINT) 0, ILCF_MOVE);
//m_Imglst.Create(IDB_BMP1,100,2,RGB(0,0,0));
CImageList *img1;
img1=new CImageList;
img1->Create(IDB_BMP2,100,0,RGB(0,0,0));
//m_Imglst.SetImageCount(50);
for(int j=0;j<img1->GetImageCount();j++)
{
m_Imglst.Copy(j,img1,j,ILCF_SWAP);//ILCF_MOVE也试过,不行
}
然后检查没有拷贝成功..
1.在类中声明变量:
CImageList m_ImgList;
2. 在类的一个初始化函数(是其它地方手工调用的)里:
HBITMAP hBitmap = (HBITMAP)::LoadImage( AfxGetInstanceHandle(), _T("im1.bmp"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );
if ( hBitmap == NULL )
return;
CBitmap *pIcon = CBitmap::FromHandle( hBitmap );
hBitmap = (HBITMAP)::LoadImage( AfxGetInstanceHandle(), _T("im2.bmp"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );
if ( hBitmap == NULL )
return;
CBitmap *pIconMask = CBitmap::FromHandle( hBitmap );
CSize size = pIcon->GetBitmapDimension();
m_ImgList.Create( size.cx, size.cy, ILC_COLOR, 5, 1 ); // 这一句要不要一个样
m_ImgList.Add( pIcon, pIconMask ); // 这一句总是出错,跟踪到里边看,是因为CImageList中的m_hImageList为NULL,那么在Add中首先就是ASSERT(m_hImageList!=NULL),于是就出错了,那我该怎么用啊?