You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SendMessage与NONCLIENTMETRICS设置字体无效问题求助

无法通过NONCLIENTMETRICS或CreateFont更改窗口字体

已尝试多种相关解决方案但均无效,恳请各位提供帮助。我参考相关方案,使用NONCLIENTMETRICS结构体和SendMessage函数创建并设置字体,在WM_CREATE分支中优先调用setfont函数(尽管要求在窗口创建前执行,且我清楚WM_CREATE是窗口创建后触发的),同时也尝试过CreateFont方法,但都无法成功更改字体。

以下是setfont()函数的代码:

void setfont(HWND hWnd) {
    NONCLIENTMETRICS ncm;
    ncm.cbSize = sizeof(NONCLIENTMETRICS);
    SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS), &ncm, 0);
    HFONT hFont = CreateFontIndirect(&ncm.lfMessageFont);
    SendMessage(hWnd, WM_SETFONT, (WPARAM)hFont, MAKELPARAM(TRUE, 0));
}

若需要展示其他代码请告知。我使用的是Visual Studio 2022,希望有人能指出问题所在。

内容的提问来源于stack exchange,提问作者clouded.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 15:55:17