如何在win-api中设置整个应用程序的字体
How to set the font of the entire application in win api?
可能的重复:
如何为Win32应用程序中的所有窗口设置默认字体
MFC对话框控件的默认字体是哪种?
我讨厌默认的Windows Api Window字体(我认为这是默认的系统字体(。我知道如何更改单个孩子的字体,比如按钮。但是,难道没有办法更改整个应用程序的字体,这样我就不必在程序中的每个小部件上使用SendMessage(…WM_SETFONT(吗?
欢迎使用代码示例。(我使用C++(
一种方法是使用EnumChildWindows:
BOOL CALLBACK SetChildFont(HWND hwndChild, LPARAM lParam)
{
HFONT hFont = (HFONT)lParam;
SendMessage(hwndChild, WM_SETFONT, (WPARAM)hFont, TRUE);
}
EnumChildWindows(hwndParent, SetChildFont, (LPARAM)hFont);
我在这里详细解释了所有这些:MFC对话框控件的默认字体是哪种?对于任何关心正确使用UI的Win32开发人员来说,这绝对是必读之作。
无法为整个应用程序设置字体。您能做的最好的事情是为父窗口设置字体,并利用大多数控件将从其父窗口继承其字体这一事实。为了确保这一点,您可以像MFC提供的那样编写自己的简单SendMessageToChildren
函数,该函数只需递归地遍历特定父级的子级,并向每个子级发送WM_SETFONT
消息。
但WM_SETFONT
实际上是您唯一的选择。不能像设置背景笔刷那样为整个类设置字体。做好这件事可能很有挑战性,但我同意这是一个非常重要的尝试。不一致的UI和不专业的应用程序的标志是不使用正确的默认GUI字体。Windows Vista出现了,不仅将人脸切换为Segoe UI,还将默认大小切换为9点,使事情变得更加复杂。
相关文章:
- 试图在visual studio上用C++创建一个桌面应用程序
- FFmpeg:制作一个应用程序比直接使用ffmepg更好吗
- 在C应用程序中运行C++(带有STL)函数
- 使用VerQueryValue检索应用程序的文件描述
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 使用调试/崩溃报告将应用程序部署到客户端
- C++控制台应用程序阻止退出
- 码头化的C++应用程序是否向后兼容早期的内核版本
- 将应用程序从32位移植到64位时出现问题
- 如何改变c++应用程序的视觉效果
- WM_CTLCOLORSTATIC从未在WIN32应用程序中触发
- PC中的程序和PHONE中的本机描述应用程序之间的数据连接
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 通知 Windows 系统应用程序字体已被卸载/删除
- 为什么非unicode应用程序系统语言环境使Unicode字体具有错误显示的符号字符
- 如何在Qt应用程序中动态更改字体
- 是否有一种方法可以改变MFC SDI应用程序的标题字体?
- 如何在win-api中设置整个应用程序的字体
- Qt应用程序在以root用户身份运行时更改字体
- 自定义字体在应用程序