我正在使用Delphi构建应用程序,并且子菜单存在问题。在以后的Windows版本(即w8和Windows Server 2012)中激活时,似乎子菜单的默认位置在左侧。我希望它们出现在右侧(默认情况下)问题可以通过Windows 8控制面板中的TabletPC设置解决。但在Windows Server 2012中没有这样的替代方案。我怎么能在Windows Server 2012中设置它还是更好,我怎么能在Delphi中以编程方式进行呢?
感谢您的期待
彼得
答案 0 :(得分:0)
您需要MainMenu或PopupMenu吗?
{ for Popup menu }
procedure TForm1.FormContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean);
var
LMousePosition: TPoint;
begin
LMousePosition := ClientToScreen(MousePos);
PopupMenu1.Popup(LMousePosition.X - 125, LMousePosition.Y);
end;
{ for Main menu }
procedure TForm1.FormCreate(Sender: TObject);
var
LMenuItem: TMenuItemInfo;
LMainMenu: HMENU;
LBuffer: Array [0..79] of Char;
begin
LMainMenu := Self.Menu.Handle;
LMenuItem.cbSize := SizeOf(LMenuItem);
LMenuItem.fMask := MIIM_TYPE;
LMenuItem.dwTypeData := LBuffer;
LMenuItem.cch := SizeOf(LBuffer);
GetMenuItemInfo(LMainMenu, miMenuItem1.Command, False, LMenuItem);
LMenuItem.fType := LMenuItem.fType or MFT_RIGHTJUSTIFY;
SetMenuItemInfo(LMainMenu, miMenuItem1.Command, False, LMenuItem);
end;