Visual Studio c++ MFC:显示来自imagelist的位图
Visual Studio C++ MFC: Displaying bitmap from imagelist
我有一个图片控件的对话框,我想显示我的imagelist的图像。如果我想通过调用
来显示位图(没有图像列表)CBitmap m_bmp;
m_bmp.LoadBitmap(IDB_BITMAP);
m_picture.SetBitmap(m_bmp); //m_picuture is the member of the picture control
它工作,但我的imagelist失败。下面是我的代码:
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
创建一个新图标。索引从0开始,因此使用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
相关文章:
- C / C++ 移位/偏移/向左或向右移动位图?
- 如何在快板的屏幕中显示子位图的绘制?
- CreateDIBSection为同一图像返回不一致的位图位值
- C++ 位图中的 ttc 字体
- 使用 GDI+ 旋转位图,然后转换为 HDC
- 难以从 CImageList 设置菜单项位图
- 如何将位图拉伸到父面板(wxWidgets 自定义)
- 如何使用 freetype2 访问单色位图中的像素状态
- 将位图 (bmp) 转换为具有透明度的 png (Windows c++)
- 安卓工作室 |CPP 文件错误错误: 位图库中对"AndroidBitmap_unlockPixels"的未定义引用
- 位图到垫子/2D 数组
- Gdiplus位图没有Alpha通道
- 如何从路径字符串加载Gdiplus::位图
- 在C++中使用Gdiplus创建透明位图
- 用C++压缩内存中的位图
- C++gdi::内存中的位图到PNG图像
- LoadImage 函数不适用于 ImageMagick 创建的位图图像
- (位图)LoadImage() 返回 NULL,GetLastError() 返回 0
- 将Qt qml文件转换为位图图像
- Visual Studio c++ MFC:显示来自imagelist的位图