将 wndproc 挂钩添加到 Win32 window

Add wndproc hooks to a Win32 window

我有一个本机 VB6 window,我想在 .NET 中监听它何时更改位置或大小以重新定位 WPF window。我在 .NET class HwndSource.fromHWnd(VB6FormHWnd) 中尝试过,但它只是 returns null 而不是 HwndSource 实例。我想这是因为 window 最初不是为承载 WPF 内容而创建的?我真的不确定。我想使用它的 addHook 功能。

我知道在 VB6 中有某种“subclassing”方法来处理 WndProc 消息,我可以在 WndProc 处理程序中从 VB6 调用某种 .NET 服务来广播或转发消息。我过去曾尝试过并取得了一些成功,但是 subclassing 变得棘手并且在调试时(通过 VB6 编辑器)对我造成崩溃问题。

仅供参考,在 VB6 IDE 中 The Modern Subclassing Thunk (MST) 不会发生任何崩溃。

您可能会因为其他一些问题而崩溃,而不是因为错误的子类处理。