当我点击button控件时,MainMenu菜单如何在点击处弹出?多谢!!
解决方案 »
- 超市的Pos系统如何和银行的刷卡系统通信?
- 如何关闭当前MDI窗口显示下一个
- 100分江湖急救!明天早上就要收工的!!!!
- 关于SQL的问题...
- 紧急菜鸟问题:把QuickRep控件的page的orientation设为横向,为什么预览的时候还是纵向?
- 请教各位,
- 怎么查找和替换一个文件里的特定字符串,不用finddialog和replacedialog,用函数
- 怎样求一个随机数,它是1至24内的任一整数?
- 请问现在DelPhi最流行的是第几版(小弟最近想学DelPhi)
- 请问如何获得DBGrid的RowHeight
- 谁能帮我看看这个程序有什么问题啊
- 请问大家:我想把一个文本框的内容转换成整数后除以3 再赋给一个整型变量,怎么写?这样子对吗:ppdetailband1.BandsPerRecord:=StrToIn
procedure xPopupMenuPopup(Sender: TObject; pMenu: TPopupMenu);
begin
with Sender as TControl do
begin
with ClientOrigin do
begin
Inc(Y, ClientHeight);
pMenu.Popup(X, Y);
end;
end;
end;
只要获得MainMenu的子菜单项,后面的不就和处理PopupMenu一样了
------------------------------------------
写程序要学会变通!!!!!!!!!!
Var P:TPoint;
begin
//弹出菜单
p := SpeedButtonZoom.ClientToScreen(
Point(0,SpeedButtonZoom.Height));
PopupMenu1.Popup(p.x,p.y);
end;
揭帖
procedure TForm1.SpeedButton1Mousedown(Sender:TObject...);
var p:TPoint;
begin
getcursorpos(p);
if button=mbleft then //判断鼠标左右键
PopupMenu1.Popup(p.x,p.y);
end;
不行找我。
menuTemp.LoadMenu(IDR_PERSONTYPE);
CString strMenu;
menu.CreatePopupMenu();
for(UINT i=0;i<menuTemp.GetMenuItemCount();i++)
{
menuTemp.GetMenuString(i,strMenu,MF_BYPOSITION);
menu.InsertMenu(i,MF_BYPOSITION|MF_POPUP,int(menuTemp.GetSubMenu(i)->m_hMenu),strMenu);
}
menu.TrackPopupMenu(TPM_RIGHTBUTTON|TPM_LEFTALIGN,rect.left,rect.bottom,this);
----------------------
上面是vc中的代码
本人对delphi不太熟,你转换过去就行了
>>那么怎么能够做到最简单呢?Kingron:请参看如下代码:procedure PopMainMenuItem(hWnd:HWND;Menu:TMenuItem);
var
R:TRect;
begin
R:=Screen.DesktopRect;
TrackPopupMenu(Menu.Handle,TPM_LEFTALIGN ,Mouse.CursorPos.X,Mouse.CursorPos.Y,0,hWnd,@R);
end;procedure TForm1.Button1Click(Sender: TObject);
begin
PopMainMenuItem(Handle,MainMenu1.Items[0]);
end;
对于其它的控件你可以看看它有没有Menuitem属性!
begin
PopupMenu1.Popup(Button3.ClientOrigin.X, Button3.ClientOrigin.Y);
end;
var P:TPoint;
begin
GetCursorPos(P);
TrackPopupMenu(ManuItem1.Handle, 0, p.X, p.Y,0, handle, nil);
//不得直接使用MainMenu,只可以的MainMenu的子项目
end;