B
bbkxjy
Unregistered / Unconfirmed
GUEST, unregistred user!
VCL的源码中,好象在用TWndMethod类型的新方法去替换一个窗口的窗口过程时都要
先调用MakeObjectInstance,对该方法进行一些处理,再将返回的指针作为新的窗口
过程的入口,现在我有以下疑问:
1、调用MakeObjectInstance是不是为了处理TWndMethod类型方法与标准WindowProc过程
之间参数及返回值之间的差异?
2、新的窗口过程被Windows回调时,控制是如何从MakeObjectInstance返回的过程入口
转移到TWndMethod类型的方法中去的?似乎控制将先从入口转到StdWndProc函数中,
但我想不出为什么进入StdWndProc时,ECX中的值将是一个方法(TWndMethod类型
的方法?)地址的指针(在StdWndProc前的注释是这么说明的)。
不知哪位大侠可以为我解释一下。
先调用MakeObjectInstance,对该方法进行一些处理,再将返回的指针作为新的窗口
过程的入口,现在我有以下疑问:
1、调用MakeObjectInstance是不是为了处理TWndMethod类型方法与标准WindowProc过程
之间参数及返回值之间的差异?
2、新的窗口过程被Windows回调时,控制是如何从MakeObjectInstance返回的过程入口
转移到TWndMethod类型的方法中去的?似乎控制将先从入口转到StdWndProc函数中,
但我想不出为什么进入StdWndProc时,ECX中的值将是一个方法(TWndMethod类型
的方法?)地址的指针(在StdWndProc前的注释是这么说明的)。
不知哪位大侠可以为我解释一下。