Formatierbaren Text mit CPaintDC
-
das ist auch nicht das Problem!
die Position bei drawtext in dem Rechteck!
-
So mal als Pseudocode!
CPaintDCString = "Dies ist ein <b> fetter </b> Text
String1 = "Dies ist ein "
CPaintDC.DrawText(String1, Lprect, Format)Dann setze ich die
Logfont.lfWeight = FW_BOLD;
Der Bereich <b> fetter </b> soll fett dargestellt werden!
String2 = "fetter"
CPaintDC.DrawText(String2, Lprect, Format) !!!! An der Stelle fehlt mir jetzt die Startposition! Hat jemand einen Vorschlag wie man das umsetzen könnte!....
String3 = "Text"
-
schau dir mal Flag DT_CALCRECT an damit bekommst du die größe des Strrings in der Ausgabe ohne das er geprintet wird.
Gruß Matthias
-
Es gibt ja nicht nur DrawText zur Textaudgabe.
Für diese Verwednung ist die Ausgabe mit TextOut oder ExtTextOut weitaus besser. Diese gibt die Länge der ausgegeben Datn zurück und Du kannst sofort mit der entsprechenden Position den nächsten String ausgeben.
-
ExtTextOut scheint zu funktionieren!
Habe aber noch eine Frage bezüglich der Koordinaten!
ich habe mir 4 Crects definiert, diese Stelle die einzelnen Zeilen da in die der text ausgegeben werden soll!
Ich habe Probleme mit den X/Y Koordinaten !
Kannst du helfen?
-
Und was ist Deine Frage, oder was Du nicht verstehst?
PS: Wenn ExtTextOut geht, dann geht auch TextOut

-
Na das ich 4 definierte Crects habe! Und mir den text immer wieder überschreibe!
Hast du nicht ein Beispiel wie ich in ein definiertes Crect String1 mit eigenem Font zeichnen kann! Und sollte ich String2 haben mit anderem Font der an der Stelle aufsetzt an dem String1 zu Ende ist!
-
Nichts was ich Dir einfach so geben kann.
Wenn Du Dir die Sachen überschreibst, dann stimmen eben Deine Koordinaten nicht und die Rechtecke überschneiden sich.
-
OK verstehe!
Aber es sollte doch möglich sein innerhalb eines definierten Crects mehrere Texte auszugeben mit unterschiedlichen Fonts?
-
Die Antwort habe ich Dir doch schon gegeben: TextOut! ExtTextOut löscht immer das gesamte Rect das Du angibst.
Vielleicht solltest Du einfach mal die Funktionsbeschreibung lesen!Du kannst Natürlich auch den Bkgnd auf Transparent setzen, aberdas ist IMHO nur gehacke.