Visual Studio C++ MFC:显示图像列表中的位图
Visual Studio C++ MFC: Displaying bitmap from imagelist
我有一个图片控件对话框,我想显示我的图像列表中的图像。如果我想通过调用
显示位图(无图像列表)
CBitmap m_bmp;
m_bmp.LoadBitmap(IDB_BITMAP);
m_picture.SetBitmap(m_bmp); //m_picuture is the member of the picture control
它有效,但我的图像列表失败了。
这是我的代码:
m_bmparr.LoadBitmap(IDB_BITMAPARR); //bitmap is 144x48 (4 bit)
m_imagelist.Create(48, 48, ILC_COLOR4, 0, 0); //3 * 48 = 144
m_imagelist.Add(&m_bmparr, RGB(255, 0, 255));
CBitmap* bitmap2;
IMAGEINFO imgInfo;
m_imagelist.GetImageInfo(1, &imgInfo); //Index 1 of imagelist
bitmap2 = CBitmap::FromHandle(imgInfo.hbmImage);
m_picture.SetBitmap(*bitmap2); //Show bitmap --> DOESN'T SHOW!! :(
有人可以帮我吗?
从大位图创建图像列表:
m_imagelist.Create(IDB_BITMAPARR, 48, 0, RGB(255, 0, 255))
其中图标宽度为48,位图宽度为144(或n * 48)。
使用ExtractIcon
创建一个新图标。索引从零开始,因此使用 ExtractIcon(0)
作为第一个图标。
HICON hicon = m_imagelist.ExtractIcon(0);
ICONINFOEX iinfo;
iinfo.cbSize = sizeof(ICONINFOEX);
GetIconInfoEx(hicon, &iinfo);
m_picture.SetBitmap(iinfo.hbmColor);
//destroy hicon when finished
我有一个图片控件对话框,我想显示我的图像列表中的图像。如果我想通过调用
显示位图(无图像列表)CBitmap m_bmp;
m_bmp.LoadBitmap(IDB_BITMAP);
m_picture.SetBitmap(m_bmp); //m_picuture is the member of the picture control
它有效,但我的图像列表失败了。 这是我的代码:
m_bmparr.LoadBitmap(IDB_BITMAPARR); //bitmap is 144x48 (4 bit)
m_imagelist.Create(48, 48, ILC_COLOR4, 0, 0); //3 * 48 = 144
m_imagelist.Add(&m_bmparr, RGB(255, 0, 255));
CBitmap* bitmap2;
IMAGEINFO imgInfo;
m_imagelist.GetImageInfo(1, &imgInfo); //Index 1 of imagelist
bitmap2 = CBitmap::FromHandle(imgInfo.hbmImage);
m_picture.SetBitmap(*bitmap2); //Show bitmap --> DOESN'T SHOW!! :(
有人可以帮我吗?
从大位图创建图像列表:
m_imagelist.Create(IDB_BITMAPARR, 48, 0, RGB(255, 0, 255))
其中图标宽度为48,位图宽度为144(或n * 48)。
使用ExtractIcon
创建一个新图标。索引从零开始,因此使用 ExtractIcon(0)
作为第一个图标。
HICON hicon = m_imagelist.ExtractIcon(0);
ICONINFOEX iinfo;
iinfo.cbSize = sizeof(ICONINFOEX);
GetIconInfoEx(hicon, &iinfo);
m_picture.SetBitmap(iinfo.hbmColor);
//destroy hicon when finished