更改 Windows GUI 中静态文本框的字体大小

Changing the font size of a static textbox in a Windows GUI

本文关键字:字体 文本 Windows GUI 静态 更改      更新时间:2023-10-16

如何在用C++编写的Windows GUI应用程序中更改静态文本框的字体大小?

HWND hText = CreateWindowW(L"EDIT", L"enter some text", WS_VISIBLE | WS_CHILD | ES_RIGHT, 100, 100, 100, 50, hWnd, NULL, NULL, NULL);

我是否必须发出另一条窗口消息

正如@RbMm所说,使用CreateFontWM_SETFONT可以实现这一点。而官方文件也有相应的介绍。

更改编辑控件使用的字体。

应用程序可以更改编辑控件使用的字体 发送WM_SETFONT消息。大多数应用程序执行此操作时 处理WM_INITDIALOG消息。更改字体不会 更改编辑控件的大小;发送WM_SETFONT消息可能必须检索文本的字体指标并重新计算编辑控件的大小。欲了解更多信息 有关字体和字体指标的信息,请参阅字体和文本。

最少的代码:

LOGFONT logfont; 
ZeroMemory(&logfont, sizeof(LOGFONT));
logfont.lfCharSet = DEFAULT_CHARSET;
logfont.lfHeight = -20; 
HFONT hFont = CreateFontIndirect(&logfont);
SendMessage(hText, WM_SETFONT, (WPARAM)hFont, TRUE);