?
hi
also wenn ich dich richtig verstehen willst du eine bestimmte Farbe in deinem Bitmap durchsichtig machen.
Da musst du soweit ich weiß eine Maske für dein Bitmap erstellen.
Ich schau mal ob ich noch was Code finde wo das gemacht wird. *such such such such ahhhh gefunden*
void CMacButton::DrawBitmap(CDC *pDC, CBitmap &BitmaptoDraw)
{
// Ist das Bitmap geladen ???
if(this->m_bBitmapLoaded != TRUE)
{
return;
}
CRect rc;
GetClientRect(rc);
COLORREF crOldBack = pDC->SetBkColor( RGB(255, 255, 255));
COLORREF crOldText = pDC->SetTextColor( RGB(0, 0, 0));
CDC dcImage, dcTrans;
// Zwei Speicher Geräte Kontext für das Bild und die Maske
dcImage.CreateCompatibleDC( pDC );
dcTrans.CreateCompatibleDC( pDC );
CBitmap *pOldBitmapImage;
pOldBitmapImage = dcImage.SelectObject(&BitmaptoDraw);
// Erstellen einer Bitmapmaske
CBitmap bitmapTrans;
int nWidth = rc.Width();
int nHeight = rc.Height();
// Erstellen einer Monochrombitmaps
bitmapTrans.CreateBitmap( nWidth, nHeight, 1, 1, NULL);
CBitmap *pOldBitmapTrans = dcTrans.SelectObject(&bitmapTrans);
dcImage.SetBkColor(m_BkColor);
dcTrans.BitBlt( 0, 0, nWidth, nHeight, &dcImage, 0, 0, SRCCOPY);
pDC->BitBlt( 0, 0, nWidth, nHeight, &dcImage, 0, 0, SRCINVERT);
pDC->BitBlt( 0, 0, nWidth, nHeight, &dcTrans, 0, 0, SRCAND);
pDC->BitBlt( 0, 0, nWidth, nHeight, &dcImage, 0, 0, SRCINVERT);
dcImage.SelectObject(pOldBitmapImage);
dcTrans.SelectObject(pOldBitmapTrans);
pDC->SetBkColor(crOldBack);
pDC->SetTextColor(crOldText);
}
wenn du willst kann ich dir auch den gesamten Quellcode per Email schicken.
crow8045@web.de