我正在尝试在窗口上绘制主题文本。然而,我总是得到像粗体 MS Sans Serif 没有抗锯齿的东西,而不是主题字体。为什么会这样?
编辑:
应用上述更改后,代码如下所示:
INITCOMMONCONTROLSEX ctrl;
ctrl.dwSize = sizeof(ctrl);
ctrl.dwICC = ICC_TREEVIEW_CLASSES;
InitCommonControlsEx(&ctrl);
(...)
SetWindowTheme(mainWinHWND, L"explorer", nullptr);
(...)
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd, &ps);
HTHEME theme = OpenThemeData(hwnd, L"TREEVIEW");
RECT rect;
rect.left = 100;
rect.top = 100;
rect.right = 200;
rect.bottom = 200;
DrawThemeText(theme,
hdc,
TVP_TREEITEM,
TREIS_NORMAL,
L"Ala ma kota",
11,
DT_VCENTER | DT_LEFT,
0,
&rect);
CloseThemeData(theme);
EndPaint(hwnd, &ps);
return 0L;
}
效果还是一样的。
整个代码(~100 行): http: //pastebin.com/ZheZyrWy 注意,它只是一个概念验证程序,这就是为什么我没有包括任何错误检查。但 DrawThemeText 返回 0(成功)。