| 

.NET C# Java Javascript Exception

1
Ich versuche schon seit einigen Stunden folgendes Problem zu lösen: Ich habe eine Bitmap, wo der Hintergrund ursprünglich weiß war, dieser jedoch transparent angezeigt werden sollte. Deswegen habe ich den Hintergrund blau gemacht, da es sonst zu Probleme gekommen wäre, da das Bild auch weiße Bildpunkte enthält.

Jetzt will ich eben das Bild so zeichnen, dass das Bild sich an die Farbe des Fensters anpasst. Jedoch, wenn das Bild gezeichnet wird, dann ist der Hintergrund nicht grau (wie die des Fensters), sondern schwarz.

Hier mal der Quelltext:
BITMAP bmp;
HDC hDCBmp;
HDC hDCMsk;

//Größe des Bildes ermittel
GetObject(hLogo, sizeof(BITMAP), &bmp);

//Bildspeicher für Maske erstellen
hLogoMask = CreateBitmap(bmp.bmWidth, bmp.bmHeight, 1, 1, NULL);

//Logo in eneun DC einbinden
hDCBmp = CreateCompatibleDC(NULL);
SelectObject(hDCBmp, hLogo);

//Maske in neuen DC einbinden
hDCMsk = CreateCompatibleDC(NULL);
SelectObject(hDCMsk, hLogoMask);

//Hintergrundfarbe (wird durchsichtig) ermitteln und Maske erstellen
SetBkColor(hDCBmp, GetPixel(hDCBmp, 0, 0));
BitBlt(hDCMsk, 0, 0, bmp.bmWidth, bmp.bmHeight, hDCBmp, 0, 0, SRCCOPY);

//Hintergrundfarbe im Logo durch Masek auf Schwarz (AND 0) setzen
//alle anderen Farben unverändert lassen (AND 255)
SetTextColor(hDCBmp, RGB(255, 255, 255));
SetBkColor(hDCBmp, RGB(0, 0, 0));
BitBlt(hDCBmp, 0, 0, bmp.bmWidth, bmp.bmHeight, hDCMsk, 0, 0, SRCAND);

DeleteDC(hDCMsk);
DeleteDC(hDCBmp);

SendMessage(GetDlgItem(hDlg, ID_BITMAP), STM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hLogo);


Was stimmt mit diesem Code nicht, dass er den Hintergrund des Bildes nicht so zeichnet, wie es sein sollte?
10.09.2012
starki 603 1 8
1
sieh mal das hier:
http://www.winprog.org/tutorial/transparency.html
wuliwux 10.09.2012