AckiB
Mitglied
Hi,
leider weiß ich nicht, wo ich diese Frage sonst stellen könnte...
Ich möchte die Breite eines Zeichens (Buchstabe) für eine bestimmte Font ermitteln...
Das klappt auch ganz gut, solange ich keine kursive Font erstelle...
Bei kursiven Fonts ist die berechnete Breite zu klein !?
ist da irgendwo ein Fehler drin ?
(wahrscheinlich)
danke, Acki
leider weiß ich nicht, wo ich diese Frage sonst stellen könnte...
![Confused :confused: :confused:](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f615.png)
Ich möchte die Breite eines Zeichens (Buchstabe) für eine bestimmte Font ermitteln...
Das klappt auch ganz gut, solange ich keine kursive Font erstelle...
Bei kursiven Fonts ist die berechnete Breite zu klein !?
Code:
// We use the desktop as dc
HWND hWnd = GetDesktopWindow();
HDC dc = GetDC(hWnd);
// and create the font
HFONT font = CreateFont(
-MulDiv(fontSize, GetDeviceCaps(dc, LOGPIXELSY), 72),
0, 0, 0,
bold ? FW_BOLD : 0,
italic,
fontUnderline,
0, 0, 0, 0, 0, 0,
fontName
);
// calculate text extents.
HGDIOBJ oldfont = SelectObject(dc, font);
SIZE size;
size.cx = 0;
size.cy = 0;
int posx = 0;
int posy = 0;
for(i = 0; i < characterCount; i++){
// hier muss der Fehler sein
GetTextExtentPoint32W(dc, &testString[i], 1, &size);
++size.cx;
if((posx + size.cx + 1) > surfaceWidth){
// new row
posx = 0;
posy = posy + size.cy + 1;
}
}
(wahrscheinlich)
danke, Acki
Zuletzt bearbeitet: