为什么不调用窗口过程而不是调用CallWindowProc?
为什么会有CallWindowProc这样的函数呢?我们提供了窗口过程的地址,所以调用该函数而不是调用另一个调用该函数的函数不是更好吗?
Why is there such function CallWindowProc? We are supplying the address of the window procedure, so isn't it better to call the function instead of calling another function which calls the function?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
因为
GetWindowLong
(或GetWindowLongPtr
)可能返回一个不是函数指针的值,而CallWindowProc
可以识别该值并将其转换为正确的调用。 [1]Because
GetWindowLong
(orGetWindowLongPtr
) might return a value that is not a function pointer, whichCallWindowProc
can recognise and translate into a proper call. [1]CallWindowProc 函数处理 Unicode 到 ANSI 的转换。如果直接调用窗口过程,则无法利用此转换。
http://msdn.microsoft。 com/en-us/library/windows/desktop/ms633571(v=vs.85).aspx
The CallWindowProc function handles Unicode-to-ANSI conversion. You cannot take advantage of this conversion if you call the window procedure directly.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms633571(v=vs.85).aspx