SetBKColor TRANSPARENT immer Schwarz???



  • Hallo,

    ich zeichne ein Bild und will darauf transparenten Text schreiben. Aber
    wenn ich die Funktion SetBKColor(hdc, TRANSPARENT); aufrufe, wird
    der Hintergrund immer nur Schwarz. Was mach ich Falsch??? Danke!

    PAINTSTRUCT ps;
    HDC hdc = BeginPaint(hwnd, &ps);
    HDC hdcMem = CreateCompatibleDC(hdc);

    	BITMAP bitmap;
    	GetObject(bmpButton, sizeof (BITMAP), &bitmap);
    	HANDLE hOld = SelectObject(hdcMem,bmpButton);
    
    	StretchBlt(hdc,0,0,60,19, hdcMem, 0,0,60,19,SRCCOPY);
    	SelectObject(hdcMem,hOld);
    	
    	LOGFONT logFont = {0};
    	logFont.lfHeight = 14;
    	logFont.lfWeight = FW_NORMAL;
    	_tcscpy_s(logFont.lfFaceName, L"Arial");
    	HFONT font = CreateFontIndirect(&logFont);
    	SetTextColor(hdc,RGB(0,0,0));
    	SetBkColor(hdc,TRANSPARENT);
    	HFONT fOld=(HFONT)SelectObject(hdc,font);
    	wchar_t title[20]={0};
    	GetWindowText(hwnd,title,20);
    	RECT r; GetClientRect(hwnd,&r);
    	r.top+=3;
    	DrawText(hdc,title,-1,&r,DT_CENTER | DT_VCENTER);
    	SelectObject(hdc,fOld);
    
    	EndPaint(hwnd,&ps);
    	DeleteObject(font);
    	DeleteObject(fOld);
    	DeleteDC(hdcMem);
    	break;


  • Du benutzt die falsche Funktion - verwende SetBkMode:

    SetBkMode(hdc, TRANSPARENT);
    


  • Supi Danke!


Anmelden zum Antworten