比如,我想判断运行我程序的环境下是否安装了Arial Unicode MS字体
如果安装了就使用该字体设置窗体,
如果没有,就使用SimSun
请教~~~
如果安装了就使用该字体设置窗体,
如果没有,就使用SimSun
请教~~~
解决方案 »
- 基于对话框的EN_CHANGE不响应是怎么回事
- CTreeView中的树结构如何动态建立
- 请教固定CSilderCtrl控件的位置和大小问题。
- 请问怎么hook系统在屏幕上显示这样一种情况??(100分,不够再加)
- VC++程序问题 ---帮忙运行看看有什么问题没
- 请问在FormView用ListCtrl有要点没有?
- CHttpFile::GetLength无法准确得到文件大小原因? ?
- 有关在dll中调用另外一个.exe程序文件的问题,高手指教,急问,高分
- 我有个VC问题求教各位大虾,我是妹妹,谢谢了!!
- VS2008 MFC 请问如何连接数据库,我通过菜单栏-》工具栏-》连接数据库可以么?
- 无闪烁刷屏的问题
- VC里面可以动态修改自定义资源吗/ 如何修改?
if(m_DlgFont.CreatePointFont(90, _T("Arial Unicode MS")))
{
AfxMessageBox(_T("OK"));
}EnumFonts还在查msdn看如何使用
我看上面写说不用EnumFonts这个
要用EnumFontFamiliesEx用法大概这样
先写个回调函数
int CALLBACK EnumFontFamProc(LPENUMLOGFONT lpelf,LPNEWTEXTMETRIC lpntm,DWORD nFontType,long lparam)
{
CString strName = lpelf ->elfLogFont.lfFaceName;
AfxMessageBox(strName);
return 10;
}
这个lpelf ->elfLogFont.lfFaceName 就是我要找的字体名
如果系统里面有这个字体的话 这个函数就会返回 return 10;下面是创建字体
if(m_DlgFont.CreatePointFont(90, _T("Arial Unicode MS")))
{
CFont* pFont = m_ctlMstrTree.GetFont();
LOGFONT lf;
memset(&lf, 0x00, sizeof(LOGFONT));
pFont->GetLogFont(&lf);
CString strTest = lf.lfFaceName; CClientDC dc (this);
int iRet = EnumFontFamiliesEx(dc, &lf, (FONTENUMPROC) EnumFontFamProc,(LPARAM) this,0);
}
就是如果创建Arial Unicode MS字体成功 那么就用EnumFontFamiliesEx检查系统里是否有该字体
如果返回10 那么就有 否则就没有