Text mittels TextOut oder DrawText über ein Bild
-
Hallo zusammen,
ich möchte einen Text über ein Bild ausgeben, aber mit den Methoden TextOut/DrawText von CDC habe ich ein häßliches Rechteck um meinen Text mit der gesetzten Hintergrundfarbe.
Da der Text variert kann ich ihn auch nicht ins Bild 'malen'.Also dacht ich mir:(funzt aber nicht)
CSize sz; CDC cdc; CRect r; int x; char text[300]; //eigene Datum+Zeit Klasse m_dzAktuell.hole_akt_datum_zeit(); m_dzAktuell.gib_text_gesamt(text); GetWindowRect(&r);//fensterauflösung cdc.CreateCompatibleDC(m_pcdcWindow); //m_pcdcWindow ist ein Zeiger auf das CDC meines Dialogs sz=cdc.GetTextExtent(CString(text));//pixelbreite text x = ((r.right-r.left)-sz.cx) /2; //zum zentrieren //weder TextOut noch DrawText funzt //cdc.TextOut(0,0,text); cdc.DrawText(text,strlen(text),CRect(0,0,sz.cx,sz.cy),DT_MODIFYSTRING); m_pcdcWindow->TransparentBlt(x,17,sz.cx,19,&cdc,0,0,sz.cx-1,13,cdc.GetBkColor()); //aufräumen cdc.DeleteDC();
Kann mir jemand helfen? Thx
-
CDC::SetBkMode
-
Hab ich eben versucht,
m_pcdcWindow->SetBkMode(TRANSPARENT);
Nun hab ich aber folgendes Problem, da ich die Zeitangabe(text) sekündlich setze, übermalt sich das Ganze.(Irgendwann habe ich nur noch weisse Rechtecke, da weiss die textfarbe is)
-
Hast du das ganze denn in OnPaint drin?
-
jup, aber egal, habs jetzt anders gelöst.
thx nochmal