NativeWindow equivalent

NativeWindow equivalent

本文关键字:equivalent NativeWindow      更新时间:2023-10-16

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应用程序中完成相同的操作?我甚至不知道从哪里开始,也不知道正确的术语是什么。

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

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