ActiveX绘制透明背景图片的问题
我想使用ActiveX控件实现这样的功能:从图片文件中读取图片信息,在注册了控件的机器上显示该图片,在没注册的机器上不显示。我的图片背景是白色的,图片上有红色黄色等颜色,当显示的时候让白色透明,只显示其他颜色,部分代码如下:
IStream *pIStream;
CPictureHolder m_pic;
CDC MemDC;
CBitmap bmpFace;
CBitmap *pOldBitmap;
//读取图片数据到char型数组中
//使用char型数组创建Stream对象
OleLoadPicture(pIStream, picturebufferlength, TRUE, IID_IPicture,(LPVOID*)&m_pic.m_pPict);
//得到图片的宽度和高度
SIZE sizeInHiMetric, sizeInPix;
m_pic.m_pPict->get_Width(&sizeInHiMetric.cx);
m_pic.m_pPict->get_Height(&sizeInHiMetric.cy);
//Calculate Its Size On a "Standard" (96 DPI) Device Context
sizeInPix.cx = MulDiv(sizeInHiMetric.cx, 96, HIMETRIC_INCH);
sizeInPix.cy = MulDiv(sizeInHiMetric.cy, 96, HIMETRIC_INCH);
MemDC.CreateCompatibleDC(NULL);
bmpFace.CreateCompatibleBitmap(&MemDC, sizeInPix.cx, sizeInPix.cy);
//将这幅图片选入内存DC
pOldBitmap = MemDC.SelectObject(&bmpFace);
m_pic.m_pPict->Render(MemDC.GetSafeHdc(), 0, 0, sizeInPix.cx, sizeInPix.cy,
0, sizeInHiMetric.cy, sizeInHiMetric.cx, -sizeInHiMetric.cy, &rcBounds);
以上代码执行了以后什么都没显示,求高人指点。