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


Anmelden zum Antworten