在Windows Mobile Contact中扩展上下文菜单

时间:2009-06-01 09:25:39

标签: windows-mobile compact-framework opennetcf

我想在Windows Mobile中扩展联系人上下文菜单。当用户右键单击带有拨号的联系人和我希望扩展的其他功能并添加我自己的项目以执行我的自定义程序时。

2 个答案:

答案 0 :(得分:3)

如果您安装Windows Mobile 5 SDK,您会找到一些相关的示例:

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

  • Callingcard
  • InboxMenuExtensibility
  • ReadViewMenuExt

答案 1 :(得分: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));

}