【发布时间】:2011-06-01 17:05:57
【问题描述】:
我正在创建一个自定义组件(从 TCustomCategoryPanelGroup 派生)并执行一些自定义绘制操作。我想处理何时启用主题并适当地绘制文本。
这是我在绘图函数中的一些代码的 sn-p:
int theBaseDrawFlags = DT_EXPANDTABS | DT_SINGLELINE | DT_VCENTER | DT_LEFT;
theBaseDrawFlags = DrawTextBiDiModeFlags( theBaseDrawFlags );
if ( TCustomCategoryPanelGroup::hsThemed == PanelGroup->HeaderStyle && ThemeServices()->ThemesEnabled )
{
ThemeServices()->DrawText( ACanvas->Handle, ThemeServices()->GetElementDetails( tebNormalGroupHead ), m_CaptionTopLeft, m_TextRect, theBaseDrawFlags, 0 );
}
else
{
// Draw without themes
}
当我尝试构建它时,我收到错误:
Unresolved external __fastcall Themes::TThemeServices::DrawTextA(HDC__ *, Themes::TThemedElementDetails&, const System::WideString, Types::TRect&, unsigned int, unsigned int)' referenced from ....
如您所见,它正在寻找DrawTextA。我查看了 Themes.hpp 标头,只定义了一个 ThemeServices::DrawText 函数。
我不确定这里发生了什么。我想也许我缺少一个导入库,但我使用的所有其他 ThemeServices 函数都没有出现链接错误。
有人知道这里发生了什么吗?
【问题讨论】:
-
忘了说我使用的是 C++Builder XE。
标签: c++builder vcl