Chr*_*zon 14
实现这个:
bool CALLBACK SetFont(HWND child, LPARAM font){
SendMessage(child, WM_SETFONT, font, true);
return true;
}
Run Code Online (Sandbox Code Playgroud)
在一个单独的文件中或只在main.cpp中,然后运行:
EnumChildWindows(hwnd, (WNDENUMPROC)SetFont, (LPARAM)GetStockObject(DEFAULT_GUI_FONT));
Run Code Online (Sandbox Code Playgroud)
WM_CREATE您可以随时创建所有子窗口,例如在消息中!
我总是在我的win32 GUI应用程序解决方案中有一个SetFont.cpp和一个SetFont.h.
Windows不为应用程序范围的字体提供任何机制.每个窗口类可能有自己的行为,用于选择默认使用的字体.它可能会尝试选择Windows shell对话框使用的字体,或者它可能只是使用自动选择到新DC中的可怕位图"系统"字体来绘制其文本.
Windows公共控件窗口类都响应WM_SETFONT,这是用于告诉窗口您希望它使用哪种字体的标准窗口消息.当您实现自己的窗口类(尤其是新的子控件窗口类)时,您还应该为WM_SETFONT以下内容编写处理程序:
WM_SETFONT处理程序应将消息转发给每个窗口.WM_SETFONT处理程序中,并将其选择到绘制窗口时使用的DC中.WM_SETFONT消息.请注意,对话管理器会为您执行此操作; 在实例化对话框模板时,新对话框的字体设置为模板中指定的字体,对话框将发送WM_SETFONT其所有子控件.
小智 6
是的你可以 !
HFONT defaultFont;
defaultFont = (HFONT)GetStockObject(DEFAULT_GUI_FONT);
SendMessage(handlerControl, WM_SETFONT, WPARAM (defaultFont), TRUE); // Send this to each control
Run Code Online (Sandbox Code Playgroud)