私はCMyHeaderCtrl
、MFC クラスから派生したカスタム ヘッダー コントロールに取り組んでおりCHeaderCtrl
、メソッドをオーバーライドしてDrawItem
、アプリケーションがテーマになっているときにカスタム描画を行います。最初に、ヘッダー項目のテーマ フォントを決定しようとしますが、失敗しGetThemeFont
て結果が返されます'element not found' (0x80070490)
。
このコントロールを使用するアプリケーションは、Common Controls 6 に対してリンクされています。サンプル コードを次に示します。
void MyHeaderCtrl::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
if(IsThemeActive() && IsAppThemed() && ComCtlVersionOK())
{
if(HTHEME hTheme = OpenThemeData(m_hWnd, L"HEADER"))
{
LOGFONTW lfw;
HRESULT hr = GetThemeFont(hTheme, lpDrawItemStruct->hDC, HP_HEADERITEM, HIS_NORMAL, TMT_CAPTIONFONT, &lfw);
ASSERT(hr == S_OK);
// ...
CloseThemeData(hTheme);
}
}
}
TMT_CAPTIONFONT
like以外のプロパティも既に試しTMT_SMALLCAPTIONFONT
ましTMT_BODYFONT
た。ここで何が問題なのですか?