2

我有一个使用 TActionToolBar 和 TActionManager 的工具栏。按钮具有子按钮,单击按钮右侧的小向下箭头可以使用这些子按钮。

“向下箭头”按钮的宽度很细,需要精确的鼠标控制。我该如何定制它?

谢谢

4

1 回答 1

2

一个解决方案是使用 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 事件中,工具栏允许您定义要使用的按钮类。我们使用更改了默认宽度的自定义类。

于 2012-11-16T11:18:35.680 回答