c# - NativeWindow 等效项

标签 c# c++ wndproc

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任何 HWND 的 C++ 回调。

有关完整的详细信息和选项(在 WIndows API 中有很多方法可以做到这一点),请参阅 Using Windows Procedures 。最接近 C# 选项的是 Subclass a Window 。请注意,子类化 Window 的新改进机制是使用 SetWindowSubclass .

关于c# - NativeWindow 等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23300525/

相关文章:

c++ - 包含具有不同类型函数指针的对象的 vector

c++ - std::(customization point) 是否调用最合适的重载?

c++ - WM_PAINT 基于按钮点击

c# - 我如何从 c# 中的 mdr.Read() 命令中只读取一条记录

c# - 使用 EF Database First 的单表分层数据

c# - 如何从第二个重定向页面更新第一个页面?

c# - 给 Entity Framework 生成的类添加数据注解

c++ - 将类添加到 mfc 项目

c++ - Winapi - WM_CLOSE 的替代品

windows - 如何将消息路由到控件的标准 WNDPROC