- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在 c#
中,我可以使用 NativeWindow
类“劫持”窗口的 WndProc
在与执行代码相同的进程中 ,使我能够覆盖某些消息并让其他消息通过。
这是一个例子:
protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
case WM_ENABLE:
//do default thing
base.WndProc(ref m);
//then do my thing
break;
case WM_PAINT:
//don't even call base.WndProc, I'll handle painting.
break;
default:
//all other messages...
base.WndProc(ref m);
break;
}
}
如何在 c++ Win32
应用程序中完成同样的事情?我什至不确定从哪里开始或正确的术语是什么。
最佳答案
您可以使用 WindowProc在 C++ 中为任何 HWND
回调。
有关完整的详细信息和选项(在 WIndows API 中有很多方法可以做到这一点),请参阅 Using Windows Procedures .最接近您的 C# 选项的是 Subclass a Window .请注意,将 Window 子类化的新改进机制是使用 SetWindowSubclass .
关于c# - 等效于 NativeWindow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23300525/
在 c# 中,我可以使用 NativeWindow 类“劫持”窗口的 WndProc 在与执行代码相同的进程中 ,使我能够覆盖某些消息并让其他消息通过。 这是一个例子: protected overr
我想禁用屏幕保护程序并关闭显示器电源。在这个阶段,还没有 Windows 窗体,我可以使用它。因此我不想使用 NativeWindow。 这是我的代码 sealed class ObserverWin
有人能解释一下为什么我的 WndProc 方法在下面实现时没有收到任何消息吗?如果我将此类放在下面的 WinForms 应用程序中并传入 那个 应用程序的句柄,WndProc 会按我的预期接收消息。但
在 AIR 中使用 NativeWindow 时,您能否在每次窗口最小化/取消最小化时得到一个事件?我尝试连接 DisplayStateChanged 但它在窗口最小化时没有触发。你知道如何获得这样的
我的应用程序旨在几乎完全通过使用缩略图和跳转列表的 Windows 7 任务栏项目来工作。我知道我可以很容易地创建一个 Form 并简单地隐藏它,但这似乎有点矫枉过正。另外,我想尽可能多地使用 Nat
我正在使用一个 NativeWindow 对象来子类化一个非托管窗口的消息泵,目的是拦截它的消息。 代码结构看起来像这样(伪 C#,请原谅小的语法问题): class AppSubclass : Co
我希望窗口始终位于所有应用程序窗口的前面,但是当应用程序停用时,我不希望窗口位于其他应用程序的前面。 最佳答案 关于air - 如何使 AIR NativeWindow 始终只在应用
你如何找出系统镶边的大小,以便我可以指定窗口大小以达到我想要的舞台大小? 如果我的主窗口设置为 800 x 600(舞台),并且我创建第二个窗口如下,它会更小。 public function Mai
我有一个 Adobe Air 应用程序,可以从菜单托盘中打开一个窗口。 html 内容有一个 javascript 代码,在加载时执行警报(window.nativeWindow)。 它与嵌入的
我没有太多的 C++ 背景,但已经成功地 Hook 了一个窗口并将其消息转换为我的应用程序可以使用的引发事件,我从继承 NativeWindow 并覆盖 WndProc 开始,并确定了我感兴趣的消息,
我尝试了 test-libstdc++ 演示,并且喜欢我可以从控制台启动它,而无需运行完整的 android 应用程序。 我想创建一个 opengl 上下文,这样我就可以从控制台中执行我的 openg
我正在尝试从面板控制句柄中检索 IOleCommandTarget 引用,以便我可以对其调用 IOleCommandTarget.Exec()。 NativeMethods.IOleCommandTa
我目前正在构建一个 HTML/JS AIR 应用程序。该应用程序需要向用户显示一个不同的“窗口”——取决于这是否是他们第一次启动该应用程序。这部分实际上很好,我有下面的代码来做到这一点: if(!st
我的应用程序是一个vb6可执行文件,但系统中一些较新的形式是用C#编写的。我希望能够使用主应用程序窗口的句柄设置 C# 窗体的所有者属性,以便在我的应用程序和其他应用程序之间来回切换时,对话框保持在顶
在针对 Office 2007 和 2010 的 VSTO 项目中,我在 ThisAddIn_Shutdown 完成后收到 ThreadAbortException。我相信这是由我的 NativeWi
在 C# Windows.Forms 中,我想拦截组合框的粘贴窗口消息。因为这不能通过覆盖组合框的 WndProc 方法来工作,因为我需要覆盖组合框内文本框的 WndProc,所以我决定创建一个 Na
我想编译一个 Android OpenGL 控制台应用程序,您可以直接从控制台启动 Android x86 或从 Android x86 GUI 中的 Android 终端应用程序运行。 这篇文章 (
我有一个带有系统托盘图标的 AIR 应用程序。单击时,它会显示并激活该应用程序。当应用程序隐藏(停靠)时,这可以按预期工作,但是如果我选择另一个应用程序,那么我的应用程序就在后台,单击系统托盘图标不会
我正在尝试开始一些项目,但遇到错误: The type javax.media.nativewindow.Capabilities cannot be resolved. It is indirect
我是一名优秀的程序员,十分优秀!