VC中让COMBO BOX直接调用系统的字体信息
如题,让下拉框直接显示系统的所有字体的信息应该调用哪个函数啊???最好能告诉我以后这类问题去查什么资料就更好了...
如题,让下拉框直接显示系统的所有字体的信息应该调用哪个函数啊???
最好能告诉我以后这类问题去查什么资料就更好了 展开
最好能告诉我以后这类问题去查什么资料就更好了 展开
1个回答
展开全部
BOOL
CALLBACK
CDlg::EnumFamScreenCallBackEx(
ENUMLOGFONTEX* pelf,
NEWTEXTMETRICEX* /*lpntm*/,
int FontType,
LPVOID pThis) /*回调函数,枚举系统已经安装的字体*/
{
if (FontType & RASTER_FONTTYPE)
return 1;
CString ss;
if(FontType & TRUETYPE_FONTTYPE)
ss=_T(pelf->elfLogFont.lfFaceName);
int kk= ((CDlg*)pThis)->m_FontList.AddString(ss); //m_FontList为一个ComboBox的控制变量
return 1;
}
BOOL CDlg::EnumerateFonts(void)/*枚举系统已经安装的字体*/
{
HDC hDC;
hDC = ::GetWindowDC(NULL);
LOGFONT lf;
ZeroMemory(&lf,sizeof(lf));
lf.lfCharSet = GB2312_CHARSET;
if (!EnumFontFamiliesEx(
hDC, // 设备描述表句柄
&lf, // 逻辑字体信息指针
(FONTENUMPROC)EnumFamScreenCallBackEx, // 回调函数指针
(LPARAM) this,
(DWORD) 0))
return FALSE;
::ReleaseDC(NULL,hDC);
return TRUE;
}
资料来源:
Google
MSDN
CALLBACK
CDlg::EnumFamScreenCallBackEx(
ENUMLOGFONTEX* pelf,
NEWTEXTMETRICEX* /*lpntm*/,
int FontType,
LPVOID pThis) /*回调函数,枚举系统已经安装的字体*/
{
if (FontType & RASTER_FONTTYPE)
return 1;
CString ss;
if(FontType & TRUETYPE_FONTTYPE)
ss=_T(pelf->elfLogFont.lfFaceName);
int kk= ((CDlg*)pThis)->m_FontList.AddString(ss); //m_FontList为一个ComboBox的控制变量
return 1;
}
BOOL CDlg::EnumerateFonts(void)/*枚举系统已经安装的字体*/
{
HDC hDC;
hDC = ::GetWindowDC(NULL);
LOGFONT lf;
ZeroMemory(&lf,sizeof(lf));
lf.lfCharSet = GB2312_CHARSET;
if (!EnumFontFamiliesEx(
hDC, // 设备描述表句柄
&lf, // 逻辑字体信息指针
(FONTENUMPROC)EnumFamScreenCallBackEx, // 回调函数指针
(LPARAM) this,
(DWORD) 0))
return FALSE;
::ReleaseDC(NULL,hDC);
return TRUE;
}
资料来源:
MSDN
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询