zoukankan      html  css  js  c++  java
  • c++_获取系统安装字体

    //功能函数
    #include <vector>
    using namespace std;
    vector<CString> g_vSysFonts;
    INT CALLBACK NEnumFontNameProc(LOGFONT* plf, TEXTMETRIC* /*ptm*/, INT /*nFontType*/, LPARAM lParam/**/)
    {
        //同步调用的回调
        vector<CString>* sysFonts = (vector<CString>*)lParam;
        CString strVal(L"");
        if (sysFonts != NULL)
        {
            strVal = plf->lfFaceName;
            if (strVal.Left(1) != L"@")
            {
                sysFonts->push_back(strVal);
            }
        }
        return TRUE; //EnumFontFamilies 返回值由此回调返回决定
    }
    
    
    void GetSystemFont(HWND& hwnd)
    {
        vector<CString> vFont;
        HDC hdc = ::GetDC(hwnd);
    //    int nRet = ::EnumFontFamilies(hdc, (LPTSTR)NULL, (FONTENUMPROC)NEnumFontNameProc, (LPARAM) & (g_vSysFonts));
        int nRet = ::EnumFonts(hdc, (LPTSTR)NULL, (FONTENUMPROC)NEnumFontNameProc, (LPARAM) & (g_vSysFonts));
        ::ReleaseDC(hwnd, hdc);
    }
    // 调用函数
    GetSystemFont(m_hWnd);
        for (vector<CString>::iterator it = g_vSysFonts.begin();it!=g_vSysFonts.end();it++)
        {
            CString css = *it;
            if (css.MakeLower().Find(L"le")!=-1)
            {
                AfxMessageBox(css);
            }
        }
  • 相关阅读:
    正则表达式知识
    网页边上的弹窗
    表格的搜索
    表格的删除与添加
    添加标签和删除标签
    延迟提示框
    js知识
    反射的应用
    java反射知识
    事务的特性和隔离级别
  • 原文地址:https://www.cnblogs.com/leochan007/p/14067559.html
Copyright © 2011-2022 走看看