以前梁兄的字体修改教程提到了用野蛮改法改出的字体不能在大字体与小子体之间切换的问题,其实不经过特殊的处理,一般用CreateFontA与CreatefontIndirectA生成的字体都不能实现大小字体之间的切换,其实大字体我看着非常碍眼,反正我天天是在小字体下度过的,不过既然存在这个问题,最好就要解决了它,以前我的思路类似于梁兄,就是写一段程序,让他检测系统设置,自动适应字体的大小,但这个应该来说很难,就是用机器码写出来了,软件中有没有空间写入也未可知。由于现在研究字体修改比较多。也写了几篇凑数的教程,不禁突发奇想:既然getstockobject的11这个参数是DEFAULT_GUI_FONT,那么,是不是用GetStockObject这个函数生成的字体就可以自动转换呢?
闲来无事,小做了几个试验,终于验证了我的想法是可行的如图:
闲来无事,小做了几个试验,终于验证了我的想法是可行的如图:
附加图片
附加图片
大家可以看到,GetStockObject的字体可以随着系统字体的改变而改变,如果想改成“宋体”9号的字体都用GetStockObject就省去了一个软件要做两个版本的麻烦,不过这对于不是标准的“宋体”9号的字体无效。相关改法我在前边的两篇文章有所提及,感兴趣的可以参照《字体之客串修改》这篇文章,如果软件中没有GetStockObject这个函数请参照:《如何简单为软件添加api函数》这篇文章。