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.
相关产品推荐
相关产品推荐

