【发布时间】:2015-04-17 13:06:31
【问题描述】:
如何打开窗口的上下文菜单(当您右键单击窗口的标题栏时出现的正常 Windows 上下文)。
我尝试过的事情(点击按钮)
ReleaseCapture();
SendMessage(this.Handle, WM_NCRBUTTONDOWN, 0, 0);
SendMessage(this.Handle, WM_RBUTTONUP, 0, 0);
SendMessage(this.Handle, WM_CONTEXTMENU, 0, 0);
还有这个:
ReleaseCapture();
SendMessage(this.Handle, WM_NCRBUTTONDOWN, HT_CAPTION, 0);
SendMessage(this.Handle, WM_RBUTTONUP, HT_CAPTION, 0);
SendMessage(this.Handle, WM_CONTEXTMENU, HT_CAPTION, 0);
【问题讨论】:
-
你想在哪个窗口打开上下文菜单?它始终是您的还是在其他流程中?另外,如果它是您自己的窗口,您是否真的定义了一个可以打开的上下文菜单?如果您要打开上下文菜单的那个控件没有,则无法打开。
-
GetSystemMenu -> TrackPopupMenu 或许
-
将焦点设置到窗口并发送 ALT+Space 给它。使用 Winforms SendKeys.Send("%")
-
@Alex 任何进程,我不想定义自定义上下文菜单,我想要右键单击标题栏时通常出现的默认系统菜单。
-
@Ralf 有趣的解决方案我现在试试
标签: c# contextmenu sendmessage