大佬教程收集整理的这篇文章主要介绍了winapi – 在Windows上检索可用的字体大小,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在我的应用程序中实现一个功能,Ctrl Mousewheel将在浏览器中上下调整字体大小.我想确定一个字体的可用大小列表,这样如果我目前的大小为12,我的应用程序知道对于Courier New,下一个合适的较大尺寸是14,而对于普通的Courier,它是15.
我该怎么做呢?
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; } }
以上是大佬教程为你收集整理的winapi – 在Windows上检索可用的字体大小全部内容,希望文章能够帮你解决winapi – 在Windows上检索可用的字体大小所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。