如何让Win32 API窗口看起来更现代?

Mac*_*iel 9 c c++ windows winapi interface

我几天前订购了Programming Windows Fifth Edition,并开始使用它.

我开始学习win32 api,但是,我有一个问题.窗户看起来并不像现代的winxp/win vista/win 7风格.我该如何解决?

它目前看起来像这样,废话字体和所有.

在此输入图像描述

提前致谢!

Machiel

Sta*_*ked 12

要获得正确的字体,您应该在以下后调用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));
Run Code Online (Sandbox Code Playgroud)

  • 对不起,但这不正确,不应该标记为答案,请参阅http://blogs.msdn.com/b/oldnewthing/archive/2005/07/07/436435.aspx (4认同)
  • 你查了我的链接了吗?它甚至会告诉你正确的API是什么"它是在Windows 95开发期间创建的,希望成为新的默认GUI字体,但到1994年7月,Windows本身停止使用它,支持SystemParametersInfo函数返回的各种字体" (3认同)