zoukankan      html  css  js  c++  java
  • paip.提升用户体验=c++ qt 字体切换功能缺少的总结..

    paip.提升用户体验=----c++ qt 字体切换功能缺少的总结..


    作者Attilax ,  EMAIL:1466519819@qq.com 
    来源:attilax的专栏
    地址:http://blog.csdn.net/attilax




    建立磊个字体,三,qt黑头切换了,费要重启才能了...这个用户体验k不好了阿.


    做为一个编辑器..应该要加个字体切换功能了...


    主要的原理式EnumFontFamiliesEx,回调个函数..不个他放的个Listbox上..


    EnumFontFamiliesEx
    //


    函数功能:该函数列举系统里所有符合由LOGFONT结构指定的字体特性的字体。此函数基于字样名或字符集或两者来枚举字体。
    函数原型:int EnumFontFamiliesEx(HDC hdc, LPLOGFONT lpLogfont, FONTENUMPROC lpEnumFontFamExProc, LPARAM lParam, DWORD dwFlags);




    枚举所有字体

    LOGFONT lf;
    lf.lfCharSet = DEFAULT_CHARSET; // Initialize the LOGFONT structure
    strcpy(lf.lfFaceName,"");
    CClientDC dc (this);


    //Enumerate the font families
    ::EnumFontFamiliesEx((HDC) dc,&lf,
    (FONTENUMPROC) EnumFontFamProc,(LPARAM) this,0);


    //枚举函数
    int CALLBACK EnumFontFamProc(LPENUMLOGFONT lpelf,LPNEWTEXTMETRIC lpntm,DWORD nFontType,long lparam)
    {
        // Create a pointer to the dialog window
        CDay7Dlg* pWnd = (CDay7Dlg*) lparam;
        // add the font name to the list box


        pWnd ->m_ctlFontList.AddString(lpelf ->elfLogFont.lfFaceName);


        // Return 1 to continue font enumeration
        return 1;
    }
    其中m_ctlFontList是一个列表控件变量


    参考:
    如何获取系统的字体? - CSDN论坛 - CSDN.NET.htm
    EnumFontFamiliesEx_百度百科.htm
  • 相关阅读:
    创建可管理的对象属性
    解析简单xml文档
    定义类的__slots__属性节省内存的开销
    读写json数据
    读写csv,excel文件数据
    常用的字符串处理方法
    sql中case when 的使用
    对字典的处理
    元组的元素命名
    列表,字典,集合按条件筛选
  • 原文地址:https://www.cnblogs.com/attilax/p/15199517.html
Copyright © 2011-2022 走看看