为什么不调用窗口过程而不是调用CallWindowProc?

时间:2011-10-10 12:41:56

标签: windows winapi callback function-pointers

为什么会有CallWindowProc这样的函数?我们提供了窗口过程的地址,所以调用函数而不是调用另一个调用函数的函数是不是更好?

2 个答案:

答案 0 :(得分:8)

因为GetWindowLong(或GetWindowLongPtr)可能会返回一个不是函数指针的值,CallWindowProc可以识别并转换为正确的调用。 [1]

答案 1 :(得分:1)

CallWindowProc函数处理Unicode到ANSI的转换。如果直接调用窗口过程,则无法利用此转换。

http://msdn.microsoft.com/en-us/library/windows/desktop/ms633571(v=vs.85).aspx