枚举获得系统字体

int CALLBACK EnumFontFamProc(LPENUMLOGFONT lpelf,LPNEWTEXTMETRIC lpntm,DWORD nFontType,long lparam)
{
    CGetSystemFontDlg*   pWnd = (CGetSystemFontDlg*)lparam;//窗口句柄
    if(pWnd->m_font != (lpelf->elfLogFont.lfFaceName))
    {
        pWnd->m_font = (lpelf->elfLogFont.lfFaceName);
        pWnd->m_fontList.AddString(pWnd->m_font);
    }
    return 1;
}
 

void CGetSystemFontDlg::OnGet()
{
    LOGFONT lf;   
    lf.lfCharSet = DEFAULT_CHARSET;
    strcpy(lf.lfFaceName,"");   
    CClientDC dc(this);   
    m_font = ""; //定义的全局变量
    ::EnumFontFamiliesEx((HDC) dc,&lf,   
    (FONTENUMPROC) EnumFontFamProc,(LPARAM)this,0);
}

你可能感兴趣的:(枚举获得系统字体)