获得windows字体方法

差MSN EnumFonts或者EnumFontFamilies必须得调用一个 callback function函数
函数体的定义:

static int CALLBACK EnumFontNameProc (ENUMLOGFONT* lpelf,NEWTEXTMETRIC* lpntm, int nFontType, LPARAM lParam);

函数内容:

int CALLBACK CNewChildTXTSet::EnumFontNameProc(ENUMLOGFONT *lpelf, NEWTEXTMETRIC *lpntm, int nFontType, LPARAM lParam)
{
    CNewChildTXTSet* pWnd = (CNewChildTXTSet*) lParam;
    if (nFontType & TRUETYPE_FONTTYPE)
        pWnd->m_effect.AddString (lpelf->elfLogFont.lfFaceName);
    return 1;
}
调用函数:

 CPaintDC dc(this);
 ::EnumFontFamilies(dc.m_hDC, NULL, (FONTENUMPROC)EnumFontNameProc, (LPARAM) this); 

 

m_effect是我控件的变量 CNewChildTXTSet是我Dlg窗体类
这样就能够调出显示所有windows当前机器上的字体

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值