0

新しいフォントを追加して、画面にテキストを描画したい。

しかし、このフォントを使用してテキストを描画すると、テキスト フォントは Arial になります。

理由はわかりません。

これが私のコードです。

見て助けてください。

HANDLE          hFind;
WIN32_FIND_DATA wfd;
WCHAR           szFontPath[MAX_PATH];
int             nNum;

swprintf(szFontPath, L"%s\\Fonts\\*.*", m_szAppPath);
hFind = FindFirstFile(szFontPath, &wfd);
if(hFind == INVALID_HANDLE_VALUE)
    return;
do 
{
    if(wfd.cFileName[0] == L'.')
        continue;
    swprintf(szFontPath, L"%s\\Fonts\\%s", m_szAppPath, wfd.cFileName);
    nNum = AddFontResource(szFontPath);
} 
while(FindNextFile(hFind, &wfd));
PostMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
FindClose(hFind);

---------------------- その他の参照機能について------------------------ --------

int                     nHeight;
LPDIRECT3DSURFACE9      pSurface;
HDC                     hDC;

m_pDevice = pDevice;
m_pDevice->GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO, &pSurface);
pSurface->GetDC(&hDC);
nHeight = -MulDiv( dwSize, GetDeviceCaps(hDC, LOGPIXELSY), 72 );
pSurface->ReleaseDC(hDC);
m_hFont = CreateFont( nHeight, 0, 0, 0, bBold, bItalic, false, false, 
    HANGUL_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY,
    DEFAULT_PITCH/* | FF_DONTCARE*/, L"Helvetica-Condensed-Black-Se");

pSurface->Release();
4

2 に答える 2

0

フォントのパスを指定できるかどうかわかりません。c:\windows\fonts (または同等の XP) にコピーして「インストール」する必要がある場合があります。

于 2011-11-14T23:16:28.997 に答える
0

このフォントは HANGUL_CHARSET をサポートしていないようです。DEFAULT_CHARSET を使用してみてください。

于 2012-10-24T10:40:23.887 に答える