|
|
1
2
我认为称之为“泄密”有点夸张。确实,调用RemoveWindowSubclass时不会还原用户对象,但再次调用SetWindowSubclass后也不会分配另一个对象。您可以重复设置和删除钩子,并且在流程的生命周期内,同一个用户对象似乎会被反复使用。 我还做了一些测试,扩展了你最简单的案例场景。仅供背景参考,你的表单的每个实例都有两个命令按钮,没有窗口挂钩,会消耗 六 每个窗口类 可能 令人担忧。在这种情况下,可能需要对整体UI设计进行根本性的重新考虑。我简直无法想象,什么时候你会在一个进程中子类化这么多窗口类,以至于每个类的这个额外对象可能很重要。 |
|
|
2
1
在VB6中,这是一种不寻常的子类化方式。你可能会更幸运 SetWindowLong(GWL_WNDPROC) -看 this VB6 code 卡尔·彼得森。 有趣的是,看起来卡尔 experimenting right now 与您正在使用的comctl32函数相同。编辑:是的,他是 posted an article an answer to this question :) |