我使用 WM_SETFONT
来更改Win32按钮的文字字体不起作用,请问一下应该怎么做才能使它像 MessageBoxW
的字体一样?
您需要使用 WM_SETFONT 消息来设置按钮的字体。该消息需要两个参数:新的字体句柄和一个布尔值,指示是否应更改控件的默认字体。例如,您可以使用以下代码来更改按钮的字体:
HWND hwndButton = CreateWindow(...);
// 创建新的字体
HFONT hfontNew = CreateFont(...);
// 使用 WM_SETFONT 消息更改按钮的字体
SendMessage(hwndButton, WM_SETFONT, (WPARAM)hfontNew, (LPARAM)TRUE);
提供参考实例:Windowns编程设置按钮的字体,链接:http://blog.chinaunix.net/uid-30223484-id-5060764.html
WM_SETFONT 消息可以用来更改Win32按钮的字体。如果您想要更改按钮的字体,可以在创建按钮时将 WM_SETFONT 消息与相应的字体句柄一起发送给按钮。这样,您就可以在按钮上使用指定的字体。
例如,如果您想要在按钮上使用 MessageBoxW 的字体,可以使用下面的代码:
HWND hwndButton = CreateWindowEx(...);
HFONT hfont = (HFONT)GetStockObject(DEFAULT_GUI_FONT);
SendMessage(hwndButton, WM_SETFONT, (WPARAM)hfont, (LPARAM)TRUE);
在上面的代码中,我们先调用 GetStockObject 函数获取 DEFAULT_GUI_FONT 的字体句柄,然后将这个字体句柄作为 WM_SETFONT 消息的参数发送给按钮。这样,您就可以在按钮上使用 MessageBoxW 的字体了。
上面的代码中使用的字体是系统默认字体,它与 MessageBoxW 使用的字体可能不完全一样。如果您想要完全匹配 MessageBoxW 的字体,可以使用其他方法获取 MessageBoxW 的字体句柄,然后将这个字体句柄作为 WM_SETFONT 消息的参数发送给按钮。
c/c++开发分享更改Win32 Windows项目中的默认窗口字体
如有帮助,望采纳
https://www.ssfiction.com/c-cyuyankaifa/541946.html