【发布时间】:2009-07-13 21:38:36
【问题描述】:
我有一个类似 WPF 任务栏的应用程序,我正在开发它是为了好玩,我希望能够打开我右键单击的应用程序(即在我的自定义任务栏中)的系统菜单,保留任何自定义菜单应用程序可能会创建(即 Google Chrome)。我有以下代码适用于我之前制作的无边框窗口应用程序,但它似乎不起作用,我想知道为什么?我需要做什么才能让它发挥作用?
public static void ShowContextMenu(IntPtr hWnd)
{
SetForegroundWindow(hWnd);
IntPtr wMenu = GetSystemMenu(hWnd, false);
// Display the menu
uint command = TrackPopupMenuEx(wMenu,
TPM.LEFTBUTTON | TPM.RETURNCMD, 0, 0, hWnd, IntPtr.Zero);
if (command == 0)
return;
PostMessage(hWnd, WM.SYSCOMMAND, new IntPtr(command), IntPtr.Zero);
}
提示:TrackPopupMenuEx(...) 似乎立即返回值为 0,而不是等待响应...
【问题讨论】: