Microsoft的User Experience Interaction Guidelines提供了一些关于何时使用菜单按钮的UI指南:
http://i.msdn.microsoft.com/Aa511453.command51(en-us,MSDN.10).png
如何创建其中一个菜单按钮?我找到了关于
的信息但是有没有标准方法可以创建一个按钮,而不是在工具栏中,使用小三角形,点击时会自动弹出一个菜单?
(我正在使用Delphi / C ++ Builder,但欢迎使用其他解决方案。)
答案 0 :(得分:11)
您可以使用OnClick强制弹出窗口,并且为了保持一致性,请不要使用光标位置,而是使用控件位置。
procedure TForm1.Button1Click(Sender: TObject);
var
pt : TPoint;
begin
Pt.X := Button1.Left;
Pt.Y := Button1.Top+Button1.Height;
pt := ClientToScreen(Pt);
PopupMenu1.Popup(pt.x,pt.y);
end;
然后,您可以使用Delphi 2010按钮或以前的版本TBitBtn添加“字形”,并将位图/字形属性指定给适当的图像并对齐。
答案 1 :(得分:4)
您没有提到您正在使用的Delphi版本,但在Delphi 2010中,TButton具有以下新属性:DropDownList可以与TPopupMenu关联以定义菜单项,Style可以设置为bsSplitButton。
这会生成一个按钮,您可以按下该按钮,右侧还有一个下拉箭头。若要在单击箭头左侧时弹出菜单,按钮单击处理程序中的此代码应该完成该任务。 / p>
procedure TForm1.Button1Click(Sender: TObject);
var
CursorPos: TPoint;
begin
GetCursorPos(CursorPos);
PopupMenu1.Popup(CursorPos.X, CursorPos.Y);
end;
在以前版本的Delphi中,我认为你必须使用TToolBar。