在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
应用程序中完成相同的操作?我甚至不确定从哪里开始或者正确的术语是什么。
答案 0 :(得分:3)
您可以在C ++中为任何HWND
使用WindowProc回调。
有关完整的详细信息和选项(在WIndows API中有很多方法可以执行此操作),请参阅Using Windows Procedures。与您的C#选项最接近的是Subclass a Window。请注意,用于子类化Window的新的改进机制是使用SetWindowSubclass。