微软的“ 用户体验交互指南”为使用菜单button的时间提供了一些UI指导:
http://i.msdn.microsoft.com/Aa511453.command51(en-us,MSDN.10).png
如何创build其中一个菜单button? 我find了有关的信息
但是有没有什么标准的方法来创build一个button,而不是在工具栏中,有一个向下的三angular形,点击时会自动popup一个菜单?
(我正在使用Delphi / C + + Builder,但其他解决scheme,欢迎。)
你可以使用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添加“字形”,并将位图/字形属性分配给适当的图像并右对齐。
你没有提到你正在使用哪个版本的Delphi,但是在Delphi 2010中,TButton具有新的属性:DropDownList可以与TPopupMenu相关联来定义菜单项,Style可以被设置为bsSplitButton。
这产生一个按钮,你可以按下它也有一个下拉箭头在它的右边,为了使菜单弹出,当你点击箭头的左侧,这个代码在按钮点击处理程序应该做的工作。
procedure TForm1.Button1Click(Sender: TObject); var CursorPos: TPoint; begin GetCursorPos(CursorPos); PopupMenu1.Popup(CursorPos.X, CursorPos.Y); end;
在以前版本的Delphi中,我认为你必须使用TToolBar。