2009-06-01 137 views

回答

1

我發現了另一個example在這裏,我想這應該爲你工作

// 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

如果你安裝了Windows Mobile 5 SDK,你會發現一些相關樣品:

C:\ Program Files文件\ Windows Mobile 5.0的SDK \樣本\掌上電腦\ CPP \ Win32的

  • Callingcard
  • InboxMenuExtensibility
  • ReadViewMenuExt