|
请问如何在gdi中设置透明色.我的情况稍微有点复杂,就是我是先通过LoadImage得到句柄,然后通过句柄写屏幕的,还通过一个缓冲dc写入,以防止闪烁.(先LoadBitmap一个空白矩形作为缓冲)
为此我不知道如何得到bitmap的指针,以及在什么位置调入TransparentBlt(CImage类,以设置好)函数.部分代码如下
MemDC.CreateCompatibleDC(pDC);
// ?? TransparentBlt(pDC->m_hDC, 0, 0, 32, 32, MemDC.m_hDC, 0, 0, 32, 32, RGB(0,0,0x00));
MemDC.SelectObject(m_pMapResouce);
MiniDC.CreateCompatibleDC(pDC);
MiniDC.SelectObject(m_pMap);
BuffDC.CreateCompatibleDC(pDC);
//?? TransparentBlt(pDC->m_hDC, 0, 0, 32, 32, BuffDC.m_hDC, 0, 0, 32, 32, RGB(255,0,255));
BuffDC.SelectObject(&m_Buff);//初始化各个DC
我试过,没有用,另外
TransparentBlt的一个例子是
CBitmap FootballBMP;
FootballBMP.LoadBitmap(IDB_FOOTBALLBMP);
CDC ImageDC;
ImageDC.CreateCompatibleDC(pDC);
CBitmap *pOldImageBMP = ImageDC.SelectObject(&FootballBMP);
TransparentBlt(pDC->m_hDC, 0, 0, 218, 199, ImageDC.m_hDC, 0, 0, 218, 199, RGB(0,0,0xff));
ImageDC.SelectObject(pOldImageBMP);
欢迎高手指教,
|
|