问题标签 [systemmenu]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - 如何在 CDialog 弹出窗口上显示系统菜单?
我有一个基于 CDialog 的应用程序。在 Visual Studio 资源编辑器中,我的对话框的属性显示样式设置为“Popup”,系统菜单值为“True”。但是,当我运行我的应用程序时,没有系统菜单;如何让系统菜单显示?我需要先用 SetIcon() 设置图标吗?
这是资源文件中我的对话框的定义:
c# - 从 c# 应用程序的系统菜单中禁用大小选项
我有 ac# windows 基础应用程序。现在我希望系统菜单中的大小选项应该被禁用。
要在系统菜单中添加选项,我使用的是 user32.dll。我正在使用 Windows 窗体。
vb.net - 您如何正确地将“关于”按钮添加到系统菜单?
我正在尝试在我的应用程序的系统菜单中添加一个“关于”按钮,但我发现的代码抛出了一个错误 -
在 DLL 'user32' 中找不到名为 'AppendMenu' 的入口点。
我想知道是否有人可以看一下代码并就我需要做些什么来修复它提出建议?谢谢。
wpf - WinAPI 复制系统菜单到新窗口
我正在使用 HwndHost 将另一个应用程序的窗口停靠在我的 WPF 窗口中。为此,我必须设置我正在停靠的窗口的 WS_CHILD 样式属性,并且我丢失了该窗口的系统菜单,这是不可接受的。使用 HwndHost 无法解决此问题,因为如果未设置该属性,它将引发异常。
我的问题是;
由于我的应用程序不使用系统菜单,有没有办法直接将停靠的应用程序的系统菜单复制到我的应用程序窗口?我知道的 WinAPI 菜单功能都需要我从头开始构建菜单,我不知道如何将这些菜单连接到托管应用程序中。
我不确定这是否重要,但两个窗口在同一个进程中。我的应用程序是我正在对接的应用程序窗口的插件。
winapi - 递归消息循环
我无法从消息处理程序中正确运行消息循环。实际上复制 DialogBox() 处理消息的方式,减去所有窗口。
简单地从消息处理程序中调用 GetMessage() 几乎可以工作,除非打开系统菜单的 WM_SYSKEYDOWN 事件也触发进入子循环。在发生这种奇怪的事情之后,按键被吞下,与系统菜单相关的 WM_MOUSEMOVE 消息被发送到主窗口。
作为记录,这发生在 Windows 8 和 XP 中。
为了给出一些上下文,我正在尝试一个线程模型,其中(无窗口)工作线程通过阻塞 SendMessage 调用回作为服务器的主窗口进行通信。这些操作可能需要进一步的输入或依赖于其他 I/O,因此需要处理常规消息,直到准备好回复。
我相当肯定这是我的一个基本错误或误解,就像我上次在这里发帖一样,但我似乎无法完全弄清楚我自己做错了什么。
这是我的复制案例。按 ALT+SPACE 打开系统菜单后尝试导航,
.net - GetMenuItemInfo 不检索菜单项信息
我有这个mii
变量,它分配一个 MenuItemInfo 结构来设置(或获取)系统菜单的项目。
当我尝试使用该变量存储有关使用 API 函数的现有菜单项的信息时,会出现问题GetMenuItemInfo
,该变量没有改变任何内容,所有结构成员仍然为空。
这是 API 函数(请注意Byref
已正确设置)
这就是我试图检索点击的菜单项信息的方式,(请查看里面的评论):
我该如何解决这个问题?
更新:
现在我的代码看起来像这样,它检索任何项目的 ID,但不检索字符串:
vb.net - 处理对系统菜单中自定义按钮的点击
我设法创建了一个类,它允许我向任何形式的系统菜单添加一个“关于...”按钮。这部分工作正常,按钮由load
表单事件添加,但是如何处理该按钮的点击?谢谢。
这是我添加按钮的方式 -
这是SystemMenu
课程 -
c++ - 如何在 Windows 的控制台应用程序中捕获系统菜单事件?
在控制台应用程序(GetSystemMenu)上获取系统菜单并添加一些自己的条目(AppendMenu)很容易。但是这些菜单项对应用程序来说毫无用处。有什么方法可以进入消息流来识别单击了哪个菜单项?
我试图挂钩到控制台窗口,但没有任何结果,我的意思是 WH_SYSMSGFILTER,一切正常,但没有消息显示挂钩函数不是由系统运行。
接下来是ReadConsoleInput
这部分工作,即它在系统菜单上显示鼠标事件,但MENU_EVENT_RECORD
结构中没有关于单击哪个菜单项的信息。
这些都是我在一个片段中的尝试,这里控制台应该充斥着消息,但只出现来自 ReadConsoleInput 的那些,但这些不包含任何有用的信息。无论用户单击第一个还是第二个添加的菜单项,都只显示两个代码 278 (0x116) WM_INITMENU 和 287 (0x11F) WM_MENUSELECT,但我无法知道如何获取 WM_MENUSELECT 消息的 wParam。
我已经成功地为鼠标事件创建了钩子,即 WH_MOUSE_LL。但所有其他钩子都不起作用。
我打算完成的是获取某种 WM_MENUCOMMAND 消息,然后使用 GetMenuItemInfo 休息。
我听说挂钩程序应该在另一个 dll 中,但怎么做呢?有任何工作片段吗?
java - 是否可以在 Java 应用程序中禁用 Alt-Space 组合键
Windows 中的 Alt-space 组合键会调出“窗口菜单” - 即右键单击标题栏时获得的菜单。它有“恢复”、“最大化”、“最小化”、“关闭”等项目。我想禁用它。在 Java Swing 程序中有没有办法做到这一点?我相信操作系统会在它进入应用程序之前得到它。
.net - 样式化 SystemMenu
我们在我们的产品中具有完全样式化的 WPF 菜单和上下文菜单。它们都是隐式样式。但是,我发现系统菜单(Alt + Space)显示的菜单不符合我们的样式,而是显示 Windows 默认样式。有没有办法纠正这个造型问题?