在Windows中创build一个菜单button

微软的“ 用户体验交互指南”为使用菜单button的时间提供了一些UI指导:

http://i.msdn.microsoft.com/Aa511453.command51(en-us,MSDN.10).png

如何创build其中一个菜单button? 我find了有关的信息

  • 如何在Vista及更高版本中创build分割button
  • 如何用下拉菜单创build工具栏button
  • 如何创build常规button并手动连接一个popup菜单的OnClick事件处理程序

但是有没有什么标准的方法来创build一个button,而不是在工具栏中,有一个向下的三angular形,点击时会自动popup一个菜单?

(我正在使用Delphi / C + + Builder,但其他解决scheme,欢迎。)

Solutions Collecting From Web of "在Windows中创build一个菜单button"

你可以使用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具有新的属性:Dr​​opDownList可以与TPopupMenu相关联来定义菜单项,Style可以被设置为bsSplitButton。

这产生一个按钮,你可以按下它也有一个下拉箭头在它的右边,为了使菜单弹出,当你点击箭头的左侧,这个代码在按钮点击处理程序应该做的工作。

 procedure TForm1.Button1Click(Sender: TObject); var CursorPos: TPoint; begin GetCursorPos(CursorPos); PopupMenu1.Popup(CursorPos.X, CursorPos.Y); end; 

在以前版本的Delphi中,我认为你必须使用TToolBar。