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);
}
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);
}