如何为Win32应用程序中的所有窗口设置默认字体?

前端之家收集整理的这篇文章主要介绍了如何为Win32应用程序中的所有窗口设置默认字体?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我希望我的应用程序中的所有控件(编辑,列表控件等)具有不是系统默认的相同字体.我该怎么做?有没有Win32 API设置应用程序默认字体?
Windows不提供应用程序范围字体的任何机制.默认情况下,每个窗口类都可能有自己的行为选择要使用的字体.它可能会尝试选择Windows shell对话框使用的字体,或者可以使用自动选择为新DC的可怕位图“系统”字体简单地绘制其文本.

Windows通用控件窗口类都响应WM_SETFONT,这是标准窗口消息,用于告诉窗口您希望使用哪种字体.当您实现自己的窗口类(特别是新的子控件窗口类)时,还应该为WM_SETFONT编写一个处理程序:

>如果您的窗口类有任何子窗口,您的WM_SETFONT处理程序应将消息转发给每个窗口.
>如果您的窗口类执行任何自定义绘图,请确保将您收到的HFONT保存在WM_SETFONT处理程序中,并将其选择到绘制窗口时使用的DC中.
>如果您的窗口类用作顶级窗口,则需要逻辑来选择自己的字体,因为它将没有父窗口发送WM_SETFONT消息.

请注意,对话管理器为您执行其中一些操作;当实例化对话框模板时,新对话框的字体设置为模板中命名的字体,对话框将WM_SETFONT的所有子控件发送出去.

猜你在找的Windows相关文章