C#模拟窗体系统菜单

using System.Runtime.InteropServices;

const uint TPM_LEFTBUTTON = 0 ;
const uint TPM_RIGHTBUTTON = 2 ;
const uint TPM_LEFTALIGN = 0 ;
const uint TPM_CENTERALIGN = 4 ;
const uint TPM_RIGHTALIGN = 8 ;
const uint TPM_TOPALIGN = 0 ;
const uint TPM_VCENTERALIGN = 0x10 ;
const uint TPM_BOTTOMALIGN = 0x20 ;
const uint TPM_RETURNCMD = 0x100 ;
const uint WM_SYSCOMMAND = 0x0112 ;

DllImport #regionDllImport
[DllImport(
"User32.dll")]
staticexternIntPtrGetSystemMenu(IntPtrhWnd,boolbRevert);
[DllImport(
"User32.dll")]
staticexternboolGetCursorPos(outPointlpPoint);
[DllImport(
"User32.dll")]
staticexternintTrackPopupMenu(IntPtrhMenu,uintuFlags,
intx,inty,intnReserved,IntPtrhWnd,outRectangleprcRect);
[DllImport(
"User32.DLL")]
publicstaticexternintSendMessage(IntPtrhWnd,uintMsg,intwParam,intlParam);
#endregion


private void button1_Click( object sender,EventArgse)
... {
PointvPoint;
RectanglevRect;
GetCursorPos(
outvPoint);
SendMessage(Handle,WM_SYSCOMMAND,TrackPopupMenu(
GetSystemMenu(Handle,
false),
TPM_RETURNCMD
|TPM_LEFTBUTTON,vPoint.X,vPoint.Y,
0,Handle,outvRect),0);
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值