如何在不同的DC下显示同一位图(保存在内存中的)!!!!!!!!分不够可以再加
我用MapX(gis软件)开发
且要利用MapX自带的一个响应函数在地图中显示大量车辆,我把车辆图片用CBitmap保存到dc中:
CDC* m_carDC;
m_carDC.CreateCompatibleDC(NULL);
CBitmap *carBmp = new CBitmap;
carBmp->CreateCompatibleBitmap(&m_carDC,1024,768);//第一个参数添加窗口dc也一样
m_carDC.SelectObject(carBmp);
if(!m_carDC.BitBlt(0, 0,1024 ,768 ,NULL,0,0, WHITENESS))//NULL
return -1;
initCarBmp(&m_carDC);//这个函数将各种车辆绘制到m_carDC中
我没有释放资源,因为这个图我要用到程序关闭
////////////////////////////////////////////////////////////////
MapX提供刷新响应函数的参数中提供了 hOutputDC,hAttributeDC
可以通过以下方法关联DC,在上面绘制都正常
CDC dc;
dc.Attach((HDC)hOutputDC);
dc.SetAttribDC((HDC)hAttributeDC
但是调用 dc.TransparentBlt(0,0,32,32,&m_carDC,0,0,32,32,RGB(255, 255, 255));(//注意m_carDC)
时却只显示一个汽车形的黑色轮廓
我怀疑是mapx提供的dc与我系统初始化保存车辆位图的DC不相同
请问有没有办法解决
或能否将为图保存在内存中,使其能任何类型的dc中调用TransparentBlt、BitBlt都能正常使用