多年来,我在 WinForms 中从 VB3 到 C# 的所有内容中都使用了 WndProc,没有任何问题,但是 WINUI-3 和 C# 给我带来了问题。 我的 DLL 导入的是: 实际的子类/非子类等,看起来像这样: 我遇到的问题是一个模糊的 SystemEngineException (-2 ...
多年来,我在 WinForms 中从 VB3 到 C# 的所有内容中都使用了 WndProc,没有任何问题,但是 WINUI-3 和 C# 给我带来了问题。 我的 DLL 导入的是: 实际的子类/非子类等,看起来像这样: 我遇到的问题是一个模糊的 SystemEngineException (-2 ...
我正在将 Windows 消息处理程序/拦截器的一些代码从 Lazarus 移动到 Delphi。 在拉撒路,我有这段代码: 请注意,WndCallback 可以将 LRESULT 返回给非 Pascal 应用程序上的调用 SendMessage。 在 Delphi 中,Windows.WNDPR ...
我在我自己的资源 DLL 中有 mainMenu,我通过 API 方法将其作为 MainMenu 放入我的 Windows 中:(LoadMenu 和 SetMenu) 使用 WndProc 单击后如何获取 MenuID? 此语句给出的 ID 为错误。 您好,我找到了一种通过 wParam 为每个 ...
我想在我的游戏从窗口切换到全屏时刷新我的交换链,反之亦然,目前我只发现 uMsg == WM_SIZE 但它不是最佳的,不幸的是全屏到无边框不起作用......是还有一条消息? 谢谢 ...
我试图捕捉用户调整自定义控件大小并使用WndProc拖动其边框的那一刻。 我只想在例如拖动左边框(鼠标左键向下)时调用特定方法。 现在我只抓住鼠标 position 而不是正确的拖动动作这是我使用的代码: ...
我制作了一个半透明、无边框的表格,中间有一个可调整大小的透明面板。 为此,我覆盖了OnPaint ,使用e.Graphics.DrawLines(...) 、 e.Graphics.FillRectangles(...)和e.Graphics.DrawRectangles(...) ...) 在面板 ...
为了防止在左键单击时切换到窗口,我正在处理WM_MOUSEACTIVATE并且它可以工作,除非我正在测试鼠标按钮状态。 此处的按钮状态将显示为已释放,即使使用左键按下来调用此事件并保持。 WM_LBUTTONDOWN仅在WM_MOUSEACTIVATE之后收到,我希望静态Mouse.LeftB ...
我正在使用 .Net 6 和PInvoke nuget 包来访问 Win32 API,并通过以下方式创建 Win32 窗口: 当窗口在屏幕上可见时,我的情况与此人相同。窗口呈现正常,但对用户无响应。 当我将鼠标悬停在窗口上时,鼠标指针变为加载圆圈。 我相信不响应是由于没有处理窗口事件和消息。 ...
那么我可以在不需要完全接收 WM_INPUT 消息的情况下获取给定设备的输入数据吗? Windows API 中是否有一个函数允许我询问给定设备的最后输入读数,而不涉及用于消息处理的 WNDPROC,理想情况下没有窗口,也没有设备注册? 在理想情况下,我只需查找已连接设备的列表,并询问我需要的设 ...
我正在尝试捕获WM_KEYDOWN以在表单级别处理一些键盘事件。 我知道我可以使用KeyPreview=true并使用TForm的OnKeyDown事件。 但是,我想在WndProc()这样做以简化单个函数中的事件处理。 问题是,它不会在WndProc()触发。 有什么特别的原因为什么没有吗? 除了 ...
我想为 WPF 启用 SnapLayout。 因为我用的是Customized Window,根据文档,我得自己做 对于 Win32 应用程序,请确保您对 WM_NCHITTEST 做出适当的响应(最大化/恢复按钮的返回值为 HTMAXBUTTON)。 我使用了以下代码 SnapLay ...
我一直在研究带有树视图的插件。 但是树视图控件中的一个错误会使双击变得混乱,因为下一次单击被忽略了。 我想要实现的是双击读取为两次单击。 我找到了一个解决方案,其中双击始终被视为单击。 代码如下: 这个 WndProc 方法不是我的驾驶室,可能不会持续很长时间。 但是对于这个插件,我需要一个快速 ...
我正在使用 Unity 在 Windows 上开发单窗口应用程序。 我允许用户调整窗口大小,但必须保持纵横比。 我想防止全屏和半屏,因为它们破坏了纵横比。 我发现以下操作可以使应用程序全屏或半屏。 全屏: 单击标题栏上的最大化按钮 将窗口拖到屏幕顶部 按 Alt + ...
当使用SetWindowLongPtr构建 WndProcs 链时,我们存储父 WndProc(在链中不太重要的那个),因此我们能够恢复并调用它,如下所示:LONG_PTR oldProc = SetWindowLongPtr(hWnd, GWL_WNDPROC, &myWndProc); ...
我正在通过非托管CreateWindowEx创建一个 window,使用 PInvoke 作为服务器,以便从不同的进程调度SendMessage调用。 这应该包含在同步function (类注册 + window 创建)中,如下所示: 但是,MSDN 声明GetMessage 从调用线程的消息队列 ...
我正在尝试处理箭头键和A 、 W 、 S 、 D字符的向上和向下键消息。 我可以使用WM_KEYUP和WM_KEYDOWN处理箭头键的上下行为。 但是当我尝试处理上述角色的上下行为时,它就无法正常工作。 我试过WM_KEYUP和WM_KEYDOWN来处理字符。 但是在我将它们更改为WM_CHAR和 ...
在使用 C# 时,之前很容易在运行时创建事件处理程序,例如:Button button1 = new button1(); button1.click += Button_Click(); //Create handler button1.click -= Button_Click(); // ...
我最近将我的一个项目迁移到WebView2 ,我不知道的最后一部分是如何拦截 webview 的 Windows 消息。 我的代码与webview/webview非常相似,但我无法在他们的 GitHub 上找到帮助。 以前,我能够找到 webview 的hWnd并使用SetWindowSubclas ...
我尝试更改标准WndProc function。我有以下代码: 我可以使用L"BUTTON" class 名称,但是当我更改WndProc function 时,我会遇到问题。 在这张图片上,您可以看到空白方块和普通按钮。 如果我尝试创建新的WNDCLASS or WNDCLASSEX ,我将一 ...
我对 Win32 很陌生,所以请保持温和,因为我肯定没有很好地描述我的问题,但我非常认真地学习更多内容。 因此,我修改了我的主 window 以包括编辑选项,包括写入和删除文本,但为了让前进感到舒适,我需要知道主 window 知道创建编辑控件的确切位置。 创建主 window 的 CreateW ...