【初心者】スレを立てる前にココで質問を【Part13】
■ このスレッドは過去ログ倉庫に格納されています
0712名前は開発中のものです。
2007/03/04(日) 13:34:27ID:dlOeAODfWindows98SEでGetGlyphOutline(GGO_GRAYn_BITMAP)を用いて文字を描画しているのですが、
CreateFontで指定した文字の太さが反映されず、標準の太さにしかなりません。
また、イタリック体に指定すると、左に傾いた文字(普通は右)になってしまいます。
TextOutで出力すると正常に動作しますし、同じコードをXPで試しても問題なく動きます。
原因や回避策をご存知の方は居られませんか?
/* 再現コード */
/* 文字コードはSJIS */
GLYPHMETRICS gm;
TEXTMETRIC tm;
unsigned char * font;
MAT2 mat2 = { {0,1}, {0,0}, {0,0}, {0,-1} };
HDC hDC = GetDC(hWnd);
HFONT hFont = CreateFont(26,0,0,0,
700, // Weight
1, // Italic
0,0,SHIFTJIS_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,DEFAULT_PITCH | FF_DONTCARE,"MS ゴシック"
);
HFONT hOldFont = (HFONT)SelectObject(hDC,hFont);
GetTextMetrics(hDC,&tm);
bufsize = GetGlyphOutline(hDC,'あ',GGO_GRAY8_BITMAP,&gm,0,NULL,&mat2);
font = (unsigned char *)malloc(bufsize);
GetGlyphOutline(hDC,'あ',GGO_GRAY8_BITMAP,&gm,bufsize,font,&mat2);
SelectObject(hDC,hOldFont);
ReleaseDC(hWnd,hDC);
DeleteObject(hFont);
; // 描画処理
free(font);
■ このスレッドは過去ログ倉庫に格納されています