2009-06-01 5 views

Répondre

1

j'ai trouvé un autre example ici je pense que cela devrait fonctionner pour vous

// Initialize the below code snippet in the beginning of the class 
internal struct SHRGINFO 
{ 
public int cbSize; 
public IntPtr hwndClient; 
public int ptDownX; 
public int ptDownY; 
public SHRGFLags dwFlags; 
} 

[Flags] 
internal enum SHRGFLags 
{ 
SHRG_RETURNCMD = 0x00000001, 
SHRG_NOTIFYPARENT = 0x00000002, 
SHRG_LONGDELAY = 0x00000008, 
SHRG_NOANIMATION = 0x00000010, 
} 
[DllImport("aygshell")] 
extern private static int SHRecognizeGesture(ref SHRGINFO shr); 

[DllImport("coredll.dll", SetLastError = true)] 
public static extern IntPtr GetActiveWindow(); 


//call the showContMenu() method in Mouseup or MouseDown event 
public void showContMenu(int x, int y) 
{ 
SHRGINFO shr = new SHRGINFO(); 
shr.cbSize = Marshal.SizeOf(typeof(SHRGINFO)); 
shr.dwFlags = SHRGFLags.SHRG_RETURNCMD; 
shr.ptDownX = x; 
shr.ptDownY = y; 
shr.hwndClient = GetActiveWindow(); 

int ret = SHRecognizeGesture(ref shr); 

if (ret == 1000) 
contextMenu1.Show(this, new System.Drawing.Point(x, y)); 

} 
3

Si vous installez le Windows Mobile 5 SDK, vous trouverez quelques exemples pertinents:

C: \ Program Files \ Windows Mobile 5.0 SDK \ Samples \ Pocket PC \ RPC \ Win32

  • CallingCard
  • InboxMenuExtensibility
  • ReadViewMenuExt
Questions connexes