windows-messages相关内容

如何在 CWinApp 中获取 WM_POWERBROADCAST 消息?

我创建了继承CWinApp的类,这个类有一个定时器(使用窗口定时器). 当 PC 进入睡眠模式并唤醒时,定时器回调称为唤醒的确切时间.当PC从挂起恢复时,我想不调用定时器回调. 所以我尝试使用 WM_POWERBROADCAST 消息.但是此消息没有在 PreTranslateMessage() API 中捕获.我也尝试了 SetWindowLong() 与我自己的 API,但仍然没有 ..

禁用桌面合成会导致选项卡控件闪烁

当我禁用桌面合成时,每当我将鼠标悬停在选项卡上时,我都会闪烁/闪烁.这仅在禁用桌面合成时发生.我试图取消 WM_ERASEBKGND 消息,但它不能解决问题.这个问题的解决方法是什么? 这是我尝试用于 MASM 选项卡控件的示例. http:///www.dreamincode.net/forums/index.php?app=core&module=attach§ion=at ..
发布时间:2022-01-09 21:11:42 其他开发

在模态对话框/打开主菜单期间继续渲染 3D 窗口?

(我使用 Ogre3D 进行渲染,但问题应该是通用的.) 问题:大多数 3D 应用程序使用循环来迭代渲染帧并检查消息并处理它们.但是如果打开一个对话框(MessageBox 或类似的),它会阻塞线程的执行并运行它自己的消息循环,但它显然不会调用其中的 3D 渲染函数. 即使在对话框打开时保持渲染 3D 场景的首选或“最佳"方式是什么?普通应用程序不会遇到这个问题,因为它们的重新渲染是由 ..
发布时间:2021-11-25 04:40:18 C#

为什么有些窗口收不到 Windows 消息

在 Visual Studio 上使用 Spy++ 工具我可以看到像桌面或资源管理器(文件资源管理器)这样的窗口接收 WM_ 消息,但像 Firefox 或 Visual Studio 这样的窗口不接收消息. 为什么有的能收到消息,有的不能. (通过 WM_ 消息,我指的是诸如 WM_MOUSELEAVE 或 WM_SETCURSOR) 解决方案 Spy++ 需要注入一个钩子来 ..
发布时间:2021-06-02 20:28:06 其他开发

如何拦截和抑制TFrame子组件的消息?

我需要拦截 TEdit 组件的 WM_PASTE 消息,该组件位于 TFrame 的后代类中. 如果不满足条件,我想执行粘贴操作. 有没有一种方法可以在帧级别执行此操作?(我的意思是,没有声明 TEdit 的后代) 解决方案 有没有一种方法可以在帧级别执行此操作?(我的意思是,没有声明 TEdit 的后代) WM_PASTE 直接发送到 TEdit 窗口,而 TFra ..
发布时间:2021-04-30 18:52:19 其他开发

在鼠标移动/单击之前,SetCursor不起作用(Win32 Api)

在处理WM_SETCURSOR Windows消息时,我将SetCursor称为特定光标.如果将光标设置为其他值,它将一直等待,直到通过移动或单击以实际设置鼠标来输入鼠标为止. 有没有一种方法可以解决这个问题,从而使光标在输入之前不会在视觉上看起来不对? 案例WM_SETCURSOR:{SetCursor(game-> GetCursor());//返回m_curCurrent返回true ..
发布时间:2021-04-27 20:29:43 C/C++开发

Windows XP WinAPI对CheckBox控件的支持

我正在查看 BM_GETCHECK ,看来只有Windows Vista及更高版本才支持此功能.也就是说,这不是Windows XP中支持的消息.在线快速进行搜索不会"立刻产生了获取控制状态的另一种方法. 其他几则消息(此),据报道我也希望它可以在Windows XP上工作.有人对此有见识吗?通常如何处理Windows XP兼容性? 不幸的是,我们仍然有一个著名的Windows XP客 ..

在模式对话框/打开主菜单期间继续渲染3D窗口吗?

(我使用Ogre3D进行渲染,但问题应该是通用的.) 问题:大多数3D应用程序都使用一个循环,该循环迭代渲染帧并检查消息并对其进行处理.但是,如果打开一个对话框(MessageBox或类似对话框),它将阻止线程的执行并运行其自己的消息周期,但显然不会在其中调用3D渲染功能. 即使打开对话框,保持3D场景渲染的首选或“最佳"方法是什么?普通应用程序不会遇到此问题,因为它们的重新呈现是由W ..
发布时间:2021-04-02 19:00:08 其他开发

如何从应用程序中捕获鼠标Windows消息?

首先很抱歉,因为对于C#来说,这可能是一个过于本地化的问题,但是无论如何,我都没有找到有关VB.NET的信息,而且我对C#的理解也不是很好. 基本上,我需要从应用程序中捕获/处理一些鼠标消息. 我该怎么做? 这只是我需要在应用程序外部进行复制的代码示例: Protected Overrides Sub WndProc(ByRef m As Message) Sel ..
发布时间:2020-07-14 05:10:51 C#/.NET

尝试编写更好的WndProc处理

我正在尝试编写更好的(我认为更好)且可重用的WndProc过程, 但是下面的代码不起作用,因为当我向子公司添加更多参数时,它表示该子公司不接受该数量的参数,这当然是合理的. 但是我知道可以做到这一点,因为前些时候我在一些第三方类中看到了这个带有很多自定义参数的wndproc子对象,我不记得在哪里见过,也不记得了他们是怎么做到的. 然后,有人可以帮助我修复此代码并在出现问题时对其进行改进 ..
发布时间:2020-07-14 05:09:49 C#/.NET

窗口进入前景时会触发哪些窗口消息?

当应用程序窗口从后台转到前台(或从不可见/最小化到可见/最大化)时,会触发哪些Windows消息(wm_xyz)? 解决方案 存在复杂的交互作用,其中包括: WM_NCHITTEST WM_NCACTIVATE WM_ACTIVATEAPP WM_ACTIVATE WM_MOUSEACTIVATE WM_SETFOCUS WM_SHOWWINDOW WM_NCPAINT ..
发布时间:2020-07-14 05:09:45 其他开发

窗体和控件(WM_xxx)之间的C#Windows(触摸->单击/焦点)消息

我有一个第三方开放源代码控件(真的不重要,但它是CefSharp的Chromium Web浏览器[v 43]). 最初,存在一个问题,如果您在控件内单击时打开了一个窗体菜单,则该菜单不会自行消失(就像控件吞没了click事件一样). 为避免这种情况,示例应用程序建议拦截 WM_MOUSEACTIVATE ,并通过发布但是,它创建了另一个.现在,一旦您在控件(触摸屏)内部至少触摸了3次, ..
发布时间:2020-07-14 05:09:38 C#/.NET

如何检测Windows挂起消息?

有人知道如何通过C/C ++代码检测Windows挂起消息吗? 或者,SetWindowsHookEx()函数可以做到这一点吗? 有人为我准备了这些代码吗?我想检测到此消息. 解决方案 如果您正在谈论睡眠和休眠–答案是肯定的,可以.您只需要听 消息. 假设您有一个MFC应用程序和一个窗口类,该窗口类是CWnd的子类.然后,您可以执行以下操作: BEGIN_MESSA ..
发布时间:2020-07-14 05:09:34 其他开发

鼠标状态Winapi

在C ++中,有什么方法可以使用winapi获取鼠标状态(位置,按钮状态)吗? 我不想使用Windows消息(WM_MOUSEMOVE,WM_LBUTTONDOWN等). 谢谢! 解决方案 听起来您正在寻找 ..
发布时间:2020-07-14 05:08:26 其他开发

包装的控件设置了捕获后,如何接收鼠标事件?

当我在按下修饰键(Shift或Control)的情况下单击时,我的WndProc没有看到鼠标向上的通知.我看到它们没有修饰键,并且看到有修饰键的鼠标向下通知. 我试图跟踪我未编写的组件中的用户操作,因此我正在使用Windows Forms NativeWindow包装器(包装该组件)从WndProc()方法获取Windows消息. 我已经尝试跟踪我收到的通知,而我看到的唯一线索是WM_ ..
发布时间:2020-07-14 05:08:23 其他开发

在Delphi中访问和继承其他Windows消息的Windows消息

我正在使用WMSysCommand消息来修改标题栏按钮(最大化/最小化)behaivor,并且要求使用WMNCHitTest进行最近的更新,但是由于冗长的代码,我不想在乘法过程中拆分这两个相关的消息. 我可以从其他消息访问私有声明(消息)吗?如果可以的话-怎么做? procedure TForm1.WMNCHitTest(var Msg: TWMNCHitTest) ; beg ..
发布时间:2020-07-14 05:08:19 其他开发