Problem mit GetCharWidth32
-
habe hier eine Funktion einzelen Buchstaben von Text per DrawText zu zeichnen:
int __stdcall MyDrawText(HDC hDC, char *Text, int nCount, LPRECT rc, UINT uFormat){ int iWidth; char dots[4]; while(*Text){ if(rc->left >= rc->right){ return 1; }else if((rc->left + 11 > rc->right) && (uFormat & DT_WORD_ELLIPSIS)){ strcpy(dots, "..."); DrawText(hDC, dots, strlen(dots), rc, uFormat); GetCharWidth32(hDC, dots[0], dots[2], &iWidth); }else{ DrawText(hDC, Text, 1, rc, uFormat); GetCharWidth32(hDC, *Text, *Text, &iWidth); } rc->left+= iWidth; // rc->left+= 10; //damit gehts Text++; } return 1; }Bei Buchstaben die kleiner als (int)128 sind funktioniert es, wenn die Buchsatben gößer sind liefert GetCharWidth32 nicht die richtigen Werte um den Zeilenvorschub korrekt auszufüheren. Wie kann man das beheben?