Пользовательские Инструкции по Взаимодействию Опыта Microsoft дают некоторые инструкции UI для того, когда использовать кнопку меню:
http://i.msdn.microsoft.com/Aa511453.command51 (en-us, MSDN 10) .png
Как я создаю одну из этих кнопок меню? Я нашел информацию о
Но есть ли какой-либо стандартный способ создать кнопку, не на панели инструментов, с мало вниз треугольником, который автоматически открывается меню при нажатии?
(Я использую Delphi / Разработчик C++, но другие решения приветствуются.)
Вы можете использовать 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 и назначить свойство bitmap/glyph соответствующему изображению и выровнять его вправо.
Вы не упоминаете, какую версию Delphi вы используете, но в Delphi 2010 TButton имеет новые свойства для этого: DropDownlist, который может быть связан с TPopupmenu, чтобы определить пункты меню, а также стиль, которые можно установить на BSSPLITBUTTON.
Это производит кнопку, которую вы можете нажать, также имеет стрелку выпадающего списка справа от него, чтобы сделать всплывающее окно MUNU, когда вы нажмете слева от стрелки, этот код в обработчике кнопки Click должен выполнять задание.
procedure TForm1.Button1Click(Sender: TObject);
var
CursorPos: TPoint;
begin
GetCursorPos(CursorPos);
PopupMenu1.Popup(CursorPos.X, CursorPos.Y);
end;
В предыдущих версиях Delphi я думаю, что вы должны были использовать TToolbar.