Zeilenumbruch ExtTextOut
-
ich verwende für meine Textausgabe die Funktion ExtTextOut(...)
nun würde ich jedoch auch gerne 2 oder mehrzeiligen Text ausgeben.ist die mit dieser Methode möglich oder gibt es dafür andere bessere. welches Zeichen dient als Zeilenumbruch (\n ??)
hab einen workaround gemacht und parse den String jetzt immer auf \n und ruf dann ExtTextOut mit verändertem Y-Wert auf
Auszug aus meinem Source:
char text[GS_CAPTION_FIELD_LEN]; strcpy(text,pgraphic->caption); linecaption=strtok(text,"\n"); TEXTMETRIC lptm; GetTextMetrics(hdc,&lptm); int lineY=pgraphic->caption_y; while(linecaption) { ExtTextOut(hdc,pgraphic->caption_x,lineY, ETO_CLIPPED,NULL,linecaption,strlen(linecaption),NULL); linecaption=strtok(NULL,"\n"); lineY+=lptm.tmAscent+lptm.tmDescent/2; }diese Variante ist jedoch unbrauchbar da ich dadurch enorme Performance einbusen habe und zusehen kann wie sich die einzelenen Elemente beschriften
.hoff einer von euch hat eine bessere lösung zur hand
-
Ein Backbuffer dürfte das ganze etwas beschleunigen.
Evtl. ist das was für dich:Platform SDK schrieb:
The DrawText function draws formatted text in the specified rectangle. It formats the text according to the specified method (expanding tabs, justifying characters, breaking lines, and so forth).