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

本文介绍了如何使用EnumFontFamiliesEx函数在Qt应用程序中实现字体切换功能,通过枚举系统中的所有字体,并将字体名称添加到列表框中,以便用户进行选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


作者Attilax ,  EMAIL:1466519819@qq.com 
来源:attilax的专栏
地址:http://blog.youkuaiyun.com/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是一个列表控件变量


参考:
如何获取系统的字体? - 优快云论坛 - youkuaiyun.com.htm
EnumFontFamiliesEx_百度百科.htm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值