NativeWindow等价物

时间:2014-04-25 18:33:25

标签: 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应用程序中完成相同的操作?我甚至不确定从哪里开始或者正确的术语是什么。

1 个答案:

答案 0 :(得分:3)

您可以在C ++中为任何HWND使用WindowProc回调。

有关完整的详细信息和选项(在WIndows API中有很多方法可以执行此操作),请参阅Using Windows Procedures。与您的C#选项最接近的是Subclass a Window。请注意,用于子类化Window的新的改进机制是使用SetWindowSubclass