几天前,我订购了Windows第五版编程,并开始使用它。
我开始学习win32应用程序接口,但是,我有一个问题。这些窗口看起来一点都不像现代的winxp/win vista/win7风格。我该如何解决这个问题?
它目前看起来像这样,垃圾字体和所有的。
提前感谢!
马基尔
发布于 2010-07-24 03:57:28
要获得正确的字体,应该在CreateWindow(Ex)
之后调用此函数
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));
发布于 2010-07-24 02:22:12
显然,你并没有真正读过这本书。你在找WM_SETFONT。这是有原因的,因为公共控件不是本书的第一个内容。
发布于 2010-07-24 03:31:42
您可能希望选中GetThemeSysFont
以填充适当系统字体的LOGFONT
,使用CreateFontIndirect
创建它,并选中WM_SETFONT
将其分配给您创建的每个控件。
据我所知,没有办法为应用程序中新创建的窗口设置不同的默认值。也没有一种方法来设置所有的窗口,你已经在一个步骤中创建(即。而不是简单地循环遍历它们,或者单独赋值)。例外的是,从资源创建的对话框允许资源指定用于对话框上所有控件的字体。
https://stackoverflow.com/questions/3323541
复制相似问题