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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值