问题标签 [wndproc]

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 投票
2 回答
2034 浏览

.net - 如何使用 WndProc?

如何在我的表单中为图片框使用 WndProc 函数?我尝试使用此代码,但它不起作用并且没有任何消息发送给我的公众:virtual void WndProc(Message% m)

0 投票
2 回答
7898 浏览

vb.net - 拦截单击或双击鼠标 - 仅在双击时执行双击代码

我有一种情况,我正在处理表单上的单次和双击鼠标事件。在这两种情况下都必须加载一些东西,但是当发生双击时,我不希望执行附加到单击事件的代码。

有没有办法拦截鼠标单击并检查是双键还是单键,然后适当地执行正确的事件?

也许通过拦截窗口的 WndProc 什么的?

0 投票
3 回答
3364 浏览

windows - 为什么 Windows 挂钩不会收到某些消息?

Microsoft 不建议将 DirectInput 用于键盘和鼠标输入。因此,我编写了一个输入管理器类,它使用 SetWindowsHookEx 挂钩到 WndProc 和 GetMsg。我相信钩子设置得当,尽管它们看起来是各种问题的原因。

我的 WndProc 和 GetMsg 挂钩都不会收到实际 WndProc 正在接收的任何消息。我的输入管理器从未收到它需要的 WM_INPUT、WM_BUTTON WM_MOUSEWHEEL 和 WM_KEY* 消息。

是什么赋予了?

部分标题:

部分来源:

我不包括消息处理程序的代码,因为它由 149 行组成,其中大部分是消息类型的开关。WndProc 中收到的消息值与我的回调中的不同。

0 投票
1 回答
2543 浏览

c# - 覆盖 .NET WebBrowsers WndProc

对于我的一个项目,我正在覆盖 AXShockwaveFlash 控件以禁用右键单击,我可以使用以下代码对其进行管理;

我正在尝试将代码也用于 WebBrowser 控件,但我在 WebBrowser 的 WndProc 上的点击事件根本没有被捕获。

有任何想法吗?

更新:我想要做的是完全禁用网络浏览器上的右键单击,IsWebBrowserContextMenuEnabled在我的情况下不起作用,因为网络浏览器中的 Flash 组件仍然处理右键单击并呈现它自己的菜单。

0 投票
1 回答
1576 浏览

c# - 如何在 C# 中捕获 Lua 异常

我正在使用名为LuaInterface的程序集在我的 C# 应用程序中运行 lua 代码。在 lua 执行期间,我创建了一些 WinForms 并将事件处理程序(lua 方法)映射到它们。

问题是doString(aka runLuaCode) 方法只运行 init 例程和构造函数。这很好并且是有意的,但是该doString函数的行为是非阻塞的,因此该函数在 Lua 创建的表单仍然存在时返回。这意味着在构造函数期间未引发的任何异常(null-ref 等)都不会被 lua 错误处理,崩溃一直到我的编辑器的 wndProc - 这很可能会杀死我的编辑器并进行错误处理几乎不可能。

有没有办法创建一个新的 Thread / Process / AppDomain 来处理它自己的 WndProc 以便只有这个子任务需要处理异常?

我是否应该在 lua 中使用 while 循环在 doString 处阻止我的编辑器,直到表单关闭?

我还有什么其他选择?

非常感谢您对此事的任何建议!

0 投票
2 回答
5064 浏览

c# - 如何确定系统是否正在关闭/重新启动,或者用户是否从 WinForms 应用程序注销?

如何知道用户执行了哪些操作,即关机、重启、待机、锁定或注销。我已经使用下面的代码来检查它,但我想识别每个案例并相应地执行操作。请建议一些方法来了解 Windows 窗体应用程序中的这些细节

0 投票
1 回答
305 浏览

.net - 在 Windows 7 上运行的 .net 中关闭非模式对话框时出现问题

您好,我有一个简单的 c-sharp windows 应用程序。我在这个表单上有一个按钮,它启动另一个非模态弹出表单(固定工具窗口)。在弹出式表单中,我不断跟踪用户在弹出式表单上执行的 Windows 消息。每当用户关闭表单(弹出窗口)时,我将标志 m_bQueryShutdownSent 设置为 true,这是为了指示主表单执行某些操作。

我用线

跟踪用户是否单击了关闭按钮并设置标志 m_bClos​​eButtonActive

问题是虽然这段代码适用于 XP / 32 位机器。它不在 Windows 7 x64 上(尽管我的应用程序配置为作为 32 位应用程序运行)。弹出代码无法处理关闭按钮单击操作 (Windows 7)。虽然这在 32 位机器 XP/XP-Embedded/2000 上是可能的

非常感谢这方面的任何帮助

0 投票
2 回答
2298 浏览

c# - 使用 .NET 在 Windows Vista 及更高版本中捕获 WndProc 消息

我有一个 .net 2.0 Windows 窗体应用程序。

我已经重写了 WndProc 方法来捕获表单上的用户活动

前任:

基于 m_bClos​​eButtonActive 的值,我采取进一步的行动。

我现在面临的问题是我的表单无法关闭,因为它无法捕获操作系统 Vista 及更高版本(甚至 Windows 7)中的关闭按钮单击事件。

即条件m.Result.ToInt32() == HTCLOSE永远不会为真,当我单击关闭按钮时,我的表单永远不会关闭。

我的应用程序可以在以前的操作系统(Windows 2000、XP、XP Embedded)中运行。还有一个有趣的事情是它在我指定时起作用

知道这里发生了什么。这是否与桌面 Windows 管理器有关,我的应用程序无法捕获关闭按钮单击事件。

提前致谢

0 投票
2 回答
336 浏览

vb.net - 如何使用 WndProc 检测模态标题栏何时闪烁?

我有一个 VB.net MDI 应用程序,其中包含一个模式窗口(显示为模式的普通窗口)。我有一个自定义标题栏按钮,如果用户在模式区域外单击,该按钮就会消失。

通常情况下,点击关闭一个模态会导致系统发出哔声,然后闪烁模态窗口的标题栏。

我想知道如何检测闪烁何时完成(如果可能,使用 WndProc),以便我可以重绘自定义按钮。

任何人都知道如何做到这一点?谢谢!

0 投票
5 回答
2126 浏览

c# - 在 C# 中侦听操作系统消息

C# 中是否有任何类似于 WndProc 方法的方法来侦听操作系统消息。我不能使用 WndProc,因为我的类既不是 Form 也不是继承自 Control(其 DLL)