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?


Anmelden zum Antworten