winapi – 在Windows上检索可用的字体大小
发布时间:2020-12-14 01:51:16 所属栏目:Windows 来源:网络整理
导读:当我打开 Windows公共字体对话框时,它会为每种字体列出一堆大小.对于所有OpenType / TrueType字体,它具有相同的列表 – 9,10,11,12,14,16,18 …对于位图字体,列表根据可用位图而变化. “小字体”有2,3,4,5,6,7,而普通的Courier有10,15.我不知道,但我从以前的
当我打开
Windows公共字体对话框时,它会为每种字体列出一堆大小.对于所有OpenType / TrueType字体,它具有相同的列表 – 9,10,11,12,14,16,18 …对于位图字体,列表根据可用位图而变化. “小字体”有2,3,4,5,6,7,而普通的Courier有10,15.我不知道,但我从以前的阅读中领先,相信即使对于TrueType字体,某些尺寸将被暗示并且看起来比所有其他尺寸更好,所以我可能还会看到一个尺寸更为有限的TrueType字体.
我正在我的应用程序中实现一个功能,Ctrl Mousewheel将在浏览器中上下调整字体大小.我想确定一个字体的可用大小列表,这样如果我目前的大小为12,我的应用程序知道对于Courier New,下一个合适的较大尺寸是14,而对于普通的Courier,它是15. 我该怎么做呢? 解决方法
有关如何枚举特定字体的字体/字体大小的说明,请参阅
here.请注意,TrueType字体可以以任何大小显示(而不仅仅是预定的字体),因为它们是基于矢量的.
int EnumFontSizes(char *fontname) { LOGFONT logfont; ZeroMemory(&logfont,sizeof logfont); logfont.lfHeight = 0; logfont.lfCharSet = DEFAULT_CHARSET; logfont.lfPitchAndFamily = FIXED_PITCH | FF_DONTCARE; lstrcpy(logfont.lfFaceName,fontname); EnumFontFamiliesEx(hdc,&logfont,(FONTENUMPROC)FontSizesProc,0); return 0; } int CALLBACK FontSizesProc( LOGFONT *plf,/* pointer to logical-font data */ TEXTMETRIC *ptm,/* pointer to physical-font data */ DWORD FontType,/* font type */ LPARAM lParam /* pointer to application-defined data */ ) { static int truetypesize[] = { 8,9,18,20,22,24,26,28,36,48,72 }; int i; if(FontType != TRUETYPE_FONTTYPE) { int logsize = ptm->tmHeight - ptm->tmInternalLeading; long pointsize = MulDiv(logsize,72,GetDeviceCaps(hdc,LOGPIXELSY)); for(i = 0; i < cursize; i++) if(currentsizes[i] == pointsize) return 1; printf("%d ",pointsize); currentsizes[cursize] = pointsize; if(++cursize == 200) return 0; return 1; } else { for(i = 0; i < (sizeof(truetypesize) / sizeof(truetypesize[0])); i++) { printf("%d ",truetypesize[i]); } return 0; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows-server-2008 – 为什么捕获的异常会导致IIS甚至整个
- windows-server-2003 – 断电后MySQL InnoDB腐败,有可能恢复
- 我可以通过任务管理器处理我的Windows进程被杀?
- Windows – Office 2010中的VBA套接字连接
- [Windows] IIS 7 产生凭证要求文件 (IIS7 Export Certifica
- windows – 批处理文件提取字符串部分
- kendo-ui – 如何使用kendoWindow显示kendoNotification
- Windows上的隐藏命令
- windows – 作为HA故障转移群集存储池的内部存储?
- windows – WSUS和Pulled Patches
推荐文章
站长推荐
热点阅读