Vla*_*lad 14
使用GetWindowLongPtr(hwnd,GWLP_WNDPROC).
注意:GetWindowLongPtr实际上是#define针对32位系统的GetWindowLong,因此为了在Delphi中导入它,您可能需要使用GetWindowLong.同样,GetWindowLongPtr本身#define可以是GetWindowLongPtrA或GetWindowLongPtrW(对于非unicode和unicode目标),所以如果导入系统不是真的很聪明的话,你可能还需要为Delphi手动选择正确的名称.
请记住,如果要调用获得的窗口proc,则应使用CallWindowProc执行此操作.感谢@In silico提示.
请注意,返回的值并不总是指向窗口过程的实际指针.有时它只是一种被识别和正确处理的句柄CallWindowProc.例如,如果您的应用程序是ANSI,则不会获得实际函数指针,但该窗口属于Unicode组件(反之亦然).有关更多详细信息,请参阅The Old New Thing中的帖子.