- 712 名前:名前は開発中のものです。 [2007/03/04(日) 13:34:27 ID:dlOeAODf]
- 質問です。
Windows98SEで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);
|

|