ウィンドウにテーマのあるテキストを描画しようとしています。ただし、テーマ フォントの代わりに、アンチエイリアスなしの太字の 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 (成功) を返します。