我有一个使用 TActionToolBar 和 TActionManager 的工具栏。按钮具有子按钮,单击按钮右侧的小向下箭头可以使用这些子按钮。
“向下箭头”按钮的宽度很细,需要精确的鼠标控制。我该如何定制它?
谢谢
我有一个使用 TActionToolBar 和 TActionManager 的工具栏。按钮具有子按钮,单击按钮右侧的小向下箭头可以使用这些子按钮。
“向下箭头”按钮的宽度很细,需要精确的鼠标控制。我该如何定制它?
谢谢
一个解决方案是使用 TActionToolBar 的 OnGetControlClass 事件。
之前,需要从 TThemedDropDownButton 派生一个类并重写 GetDropDownButtonWidth 函数:
function TThemedDropDownButtonEx.GetDropDownButtonWidth: Integer;
begin
Result := 14; // default drop down button width
end;
然后,在 OnGetControlClass 函数中:
void __fastcall TWorkAreaToolBarFrame::ActionToolBarLeftGetControlClass(TCustomActionBar *Sender,
TActionClient *AnItem, TCustomActionControlClass &ControlClass)
{
if(ControlClass == __classid(TThemedDropDownButton))
ControlClass = __classid(TThemedDropDownButtonEx);
}
简而言之,在 GetControlClass 事件中,工具栏允许您定义要使用的按钮类。我们使用更改了默认宽度的自定义类。