问题标签 [getmessage]

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.

0 投票
0 回答
987 浏览

c++ - GetMessage 从任务栏关闭时未收到 WM_QUIT

我遇到了奇怪的问题。我有 C++ (WinAPI) 应用程序,如果我通过 [X] 窗口按钮关闭它,一切正常 - 窗口关闭,应用程序结束。

但是当我从任务栏按钮上下文菜单关闭应用程序时,窗口关闭但应用程序/进程仍在运行。卡在 GetMessage 上。

该应用程序仅包含一个窗口。

我的 WndProc 只包含 WM_DESTROY 处理程序,在任何情况下都可以正确处理:

应用程序的主循环是:

当我从任务栏菜单关闭应用程序时,窗口关闭但进程仍停留在 GetMessage 上。就像它没有正确接收 WM_QUIT 一样。但是如果我用 PeekMessage 替换 GetMessage,它会正确地从队列中读取 WM_QUIT。

此外,只需在 GetMessage 之前添加额外的 PeekMessage 即可:

从任务栏菜单关闭应用程序时,简单的 GetMessage 无法正确接收 WM_QUIT 有什么原因吗?

重现问题的最少应用程序代码:

0 投票
0 回答
62 浏览

c++ - 如何处理来自另一个线程的 win32 事件?

所以我想从一个单独的线程处理win32事件回调,这样我就可以在后台处理其他东西

我已经尝试过std::thread,但声明GetMessage(LPMSG,HWND,UINT,UINT)仅适用于当前线程上的窗口

std::thread(EventThread) ; // i want to do this

那么,有没有办法等待来自另一个线程的事件和东西?任何帮助将不胜感激 !

再见,塞缪尔

0 投票
1 回答
756 浏览

java - 如何获取特定消息并仅从队列中删除该消息

我需要根据队列的相关 ID 从队列中获取特定消息。

有没有一种方法可以让我们获取对应相关 ID 的消息,并仅从队列中删除该消息而不删除其他消息。

我尝试过的选项是检索消息,但在查找我的消息时也会从队列中删除其他消息

浏览队列时,我在 accessQueue 方法中使用了以下 openOptions

MQC.MQOQ_INPUT_SHARED | MQC.MQOO_FAIL_IF_QUIESCING | MQC_MQOO_INQUIRE | MQC.MQOOBROWSE

以及以下选项来获取消息

0 投票
1 回答
140 浏览

c# - 如何在 C# 中通过 User32.dll 中的任何函数检测鼠标滚轮滚动

我正在尝试通过 Windows 中任何程序上的“键盘和鼠标”来检测用户活动。

GetAsyncKeyState()user32.Dll“.

我通过以下方式检测鼠标移动System.Windows.Forms.Cursor.Position;

我正在寻找一种方法来检测Windows 中任何程序和屏幕上任何位置上的鼠标滚轮滚动。

我知道它可以通过user32.DllGetMessage(). 我从不使用像MouseWheelEvent 这样的寡妇表单控制事件,因为它只适用于当前程序,根本不适用。

谢谢。

0 投票
1 回答
52 浏览

java - 如何绕过必须将超级构造函数放在第一行的限制?

上面写的是我的代码的理想场景,最后是超级构造函数。虽然,由于 super 必须是第一个语句,我无法弄清楚如何从数组内联中开发字符串。我不能直接使用.toString(),因为字符串的外观有一定的标准。除了这个小细节之外,我已经设法弄清楚有关异常的所有内容。任何帮助将不胜感激!

更新

我被建议尝试 Strin.join 以便将它们链接在一起,尽管不幸的是对象引用名称与数组对象中的 name 变量不同......