[Q]How to display Tahoma italic font
- From: "Johnny" <johnny194@xxxxxxxxxxx>
- Date: 15 May 2006 20:50:50 -0700
Hi
I can't display Tahoma font in italic properly using
GetTextExtentPoint32W(), do you have any ideas about it? here is a
brief view of the code:
void demoFunc(HDC hdc)
{
int XIncrement;
int YStart;
HFONT hfntDefault;
HFONT hfntItalic;
HFONT hfntNormal;
LPSTR lpszString = "dd";
int stringLen = strlen(lpszString);
LPWSTR wString = (LPWSTR)malloc(WCHAR_STRING_LENGTH * sizeof(LPWSTR));
SIZE sz;
// Create a normal and an italic logical font
hfntItalic = MyCreateFont(ITALIC_FONT);
hfntNormal = MyCreateFont(NORMAL_FONT);
// translate the LPSTR string to LPWSTR string
MultiByteToWideChar(CP_ACP, 0, lpszString, stringLen, wString,
WCHAR_STRING_LENGTH);
// Select the normal font and draw the first string
// beginning at the specified point (XIncrement, YStart).
XIncrement = 10;
YStart = 50;
hfntDefault = (HFONT)SelectObject(hdc, hfntNormal);
TextOut(hdc, XIncrement, YStart, (LPCWSTR)wString, stringLen);
GetTextExtentPoint32W(hdc, (LPCWSTR)wString, stringLen, &sz);
XIncrement += sz.cx;
// Select an italic font and draw the second string
// beginning at the point (XIncrement, YStart).
hfntNormal = (HFONT)SelectObject(hdc, hfntItalic);
TextOut(hdc, XIncrement, YStart, (LPCWSTR)wString, stringLen);
// Compute the length of the second string and add
// this value to the x-increment that is used for the
// text-output operation.
GetTextExtentPoint32W(hdc, (LPCWSTR)wString, stringLen, &sz);
XIncrement += sz.cx;
// Reselect the normal font and draw the third string
// beginning at the point (XIncrement, YStart).
SelectObject(hdc, hfntNormal);
TextOut(hdc, XIncrement, YStart, (LPCWSTR)wString, stringLen);
// Reselect the original font.
SelectObject(hdc, hfntDefault);
// Delete the bold and italic fonts.
DeleteObject(hfntItalic);
DeleteObject(hfntNormal);
free(wString);
}
HFONT MyCreateFont(FontType ftype)
{
LOGFONT logfont = {0};
wcscpy(logfont.lfFaceName, L"Tahoma");
switch (ftype)
{
case ITALIC_FONT:
logfont.lfItalic = TRUE;
break;
case BOLD_FONT:
logfont.lfWeight = FW_BOLD;
break;
case NORMAL_FONT:
break;
default:
assert(0);
break;
}
return CreateFontIndirect(&logfont);
}
I've been searching for a solution for weeks, please help me,
thanks.
Regards,
Johnny
.
- Follow-Ups:
- Re: [Q]How to display Tahoma italic font
- From: John Carson
- Re: [Q]How to display Tahoma italic font
- Prev by Date: How to draw a icon of alpha channel from CImagelist?
- Next by Date: Re: [Q]How to display Tahoma italic font
- Previous by thread: How to draw a icon of alpha channel from CImagelist?
- Next by thread: Re: [Q]How to display Tahoma italic font
- Index(es):
Relevant Pages
|