问题标签 [windows-messages]

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 投票
1 回答
2011 浏览

c++ - WM_DEVICECHANGE 消息未发送到 WndProc - C++

我的应用程序创建一个窗口来处理WM_DEVICECHANGEWindows 消息。 WndProc确实被调用了几次,直到我的应用程序调用一个函数来轮询键盘事件,但是无论出于何种原因,当我移除或插入我的 USB 设备时它都不会被调用。

这是我的 USB 设备的 GUID。我确定这是正确的:

这就是我的窗口的创建方式:

这是我注册设备通知的方式:

我的WndProc功能如下所示:

有谁知道我做错了什么?谢谢。

0 投票
2 回答
1770 浏览

c - 我的字符集有什么问题(Win32 API)

我目前正在使用本教程学习 Win32 ,但我很难处理我显示的字符。

以这段代码为例,它在创建时向我的窗口添加了一个菜单:

那是在我的函数中处理从消息循环接收到的 Windows 消息的switch块内。WndProc

要显示的每个字符串:

在运行时不可读,因为它们显示为小方块,就像代码页不是正确的那样或类似的东西。当我运行教程时,所有字符串都正确显示。我倾向于完全按照教程所说的来帮助我把事情做好,而且它的教学法很好。反正!...

我在用着:

  1. Microsoft Visual Studio 2008 团队系统;
  2. 使用 RDP 的 Microsoft Windows Server 2003;
  3. 本地操作系统是 Windows Vista Ultimate。

有人知道吗?

0 投票
3 回答
2019 浏览

c++ - 如何避免 WM_APP

我正在编写一个 CFrameWnd 包装器,我在头文件中有这一行:

这是一个好习惯吗?是否要求此包装器的用户必须记住不要使用此特定数字 (WM_APP + 100) ?

0 投票
1 回答
436 浏览

c - Win32:是什么让我的消息循环在该示例中无法正常工作?

我最近遇到了一种情况,我想在 Win32 中使用无模式对话框。

Win32:工具栏对话框似乎永远无法获得焦点并导致主窗口处理缓慢!?

我发现这是我的消息循环:

事实上,只要我没有任何无模式对话框,这个消息循环就可以正常工作,因为它与模式对话框完美配合,因为它们处理自己的消息循环。hWnd当我将实例替换为NULL. 我只是不明白其中的区别,只是似乎我收到的消息不是针对某个特定窗口的消息。

有人可以解释是什么让这个消息循环工作不正确吗?

作为这个:

完美无瑕!

0 投票
1 回答
442 浏览

c++ - Windows 消息 - 捕获来自另一个 API 的调用

设想:

我们正忙于将第 3 方的 C++ SDK 打包为 DLL,以使我们组织中的其他开发人员更容易将此功能集成到他们自己的应用程序中(无论是 .net、delphi 等)

底层系统发送 Windows 消息以指示系统中发生的事件。需要处理这些事件,因为它们可能表明系统的状态以及下一步可以做什么。

问题:

在我们采用的方法(即包装第 3 方 SDK 的 DLL)的范围内处理这些消息的最佳方法是什么?想到的一些想法:

  1. 让使用 DLL 的应用程序捕获消息,然后通过函数调用将其传递回 DLL 进行处理——调用应用程序甚至可以捕获这些消息吗?
  2. 从 DLL 中生成一个线程,该线程实现一个消息泵,处理来自底层系统的这些消息并冒泡我们自己的自定义消息?

为 SDK 提供的所有示例代码都使用单个 Win32 应用程序,该应用程序实现消息泵并在应用程序的上下文中处理消息。

自从我使用本机 Win32 进行 Windows 开发以来,已经有很长时间了,希望得到一些建议。

0 投票
1 回答
598 浏览

windows - 如何在表单中心模拟[Ctrl+鼠标左键单击]或打开另一个程序并输入一个单词?

巴比伦词典和其他一些词典允许单击任何 Windows 程序中的任何单词并自动识别光标下的单词,并在已安装的词典中搜索该单词时立即打开词典窗口。另一方面,您可以打开字典,输入您的单词并按 Enter,结果将是相同的。

有一个 Delphi 表单,包含一个文本标签,例如带有单词“Automaton”。

我的问题是:

如何将一个单词从我的 Delphi 应用程序直接发送到字典窗口,就像您手动键入并按 Enter 一样?

最好的解决方案是通过 Windows 机制发送一些消息,但如果太复杂,还有另一种解决方案,所以第二个答案:正如我所描述的,我们需要模拟一个 [Ctrl+鼠标左键] 单击一个表单,其中这个词显示在一个表单上[我的 Delphi 应用程序屏幕上的一个可视标签],准确地说,在这个标签的某个中心像素上。

您能否就如何在 Delphi 中做一件事或另一件事给出建议?

** 编辑:AppActivate 的问题是:Babylon dict 有一个位于托盘中的守护进程部分。在任务管理器中,应该输入文本的真实窗口也被命名为“Babylon”。所以 AppActivate('Babylon') 试图将应用程序的非可视部分放在前面。

您对如何确定窗口句柄或应用程序的真实视觉部分有什么建议吗?在任务管理器中,我重复视觉和非视觉部分都命名为“巴比伦”。

0 投票
1 回答
722 浏览

.net - Windows CE 上的 .NET CF - 过滤系统消息的问题

我正在尝试获取所有告诉用户已触摸屏幕的 Windows 消息。当它被禁用时,它可以在任何地方工作,除了按钮。单击禁用控件时,应用程序似乎没有收到任何消息。

我正在使用 OpenNetCF Application2 类来过滤消息:

Application2.AddMessageFilter(Device.PowerManager);
Application2.Run(new MainForm());

PowerManager 类包含以下方法(根据 IMessageFilter 接口的要求):

在日志文件中,单击禁用按钮时没有显示 Windows 消息。我想知道这怎么可能,我怎样才能得到这个消息。

0 投票
2 回答
4532 浏览

winapi - 鼠标状态winapi

有没有办法在 C++ 中使用 winapi 获取鼠标状态(位置、按钮状态)?我不想使用 Windows 消息(WM_MOUSEMOVE、WM_LBUTTONDOWN 等)。

谢谢!

0 投票
2 回答
232 浏览

mfc - 如何查找谁生成了 Windows 消息

我们有一个非常庞大、复杂的 MFC 应用程序。出于某种原因,运行我们的应用程序的特定模式正在向窗口生成 WM_SIZE 消息。它不应该发生并且正在扼杀性能。我可以看到消息得到处理。 如何在代码中找到生成窗口消息的内容或位置?

注意:当我们将性能监控工具挂接到应用程序时,往往会发生这种情况。所以它可能是第三方工具在做这件事。
但它只发生在这种特定的操作模式中,所以它可能是某种奇怪的交互。

0 投票
1 回答
954 浏览

windows - 窗口进入前台时会触发哪些窗口消息?

当应用程序窗口从后台转到前台(或从不可见/最小化到可见/最大化)时,会触发哪些窗口消息 (wm_xyz)?