BOOL CImageList :: Replace(int nImage,CBitmap * pbmImage,CBitmap * pbmMask)

时间:2018-05-23 10:41:49

标签: winapi mfc gdi

我有一个图像列表。

对于某些操作,我正在使用

提取工具栏图像并替换图像列表中的图像

BOOL CImageList::Replace( int nImage, CBitmap* pbmImage, CBitmap* pbmMask );

我需要在替换时应用蒙版颜色RGB(255,0,255)。

ICONINFO iconinfo;
GetIconInfo(hIcon, &iconinfo);
HBITMAP hBitmap = iconinfo.hbmColor;
m_imgListSingle.Replace(0,CBitmap::FromHandle(hBitmap),???)

我不知道我需要为CImageList替换函数传递第三个参数。

1 个答案:

答案 0 :(得分:0)

无法直接使用掩码颜色替换功能。

您可以成功使用以下序列:

  • 使用CImageList::Add方法和适当的遮罩颜色
  • 使用CImageList::GetImageInfo提取由Add命令
  • 创建的位图
  • CImageList::Replace方法与提取的位图一起使用
  • 使用CImageList::Delete方法删除新创建的图像。
  • 别忘了释放CImageList::GetImageInfo
  • 检索到的位图