VB应用程序中的user32.dll有什么作用?

3
在我们的项目中,我们使用了user32.dll并传递了hWnd的值。我想知道这个User32.dll的作用以及传递hWnd值的用途是什么?
他们正在设置这些值。
SetProp hwnd, "PrevWndProc", SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc)
2个回答

7
它使用SetProp Windows API函数将一个值与变量hwnd中标识的窗口相关联。
该片段用于存储原始窗口过程的地址(由SetWindowLong返回),同时用VB6过程(称为WindowProc)替换(子类化)它,通常是为了与发送到窗口的消息交互。
随后的SetWindowLong通过使用GetProp查找先前存储的hwnd来恢复原始窗口过程,然后进行RemoveProp以清理。

1
+1 @jai 看看 WindowProc 内部处理哪些窗口消息以及它的功能是什么,这样你就知道它在做什么了。子类化是扩展标准 VB6 控件和窗体功能的高级方式。 - MarkJ

2

User32是一个管理桌面上所有窗口的库。hwnd参数是在系统中标识您的窗口的句柄。


谢谢您的信息。这里我根据某些条件调用了两个函数:1. "SetProp" 2. "SetWindowLong",以及3. "RemoveProp"。您能否更详细地解释一下这些函数的作用呢? - Hemant Kumar
我很久以前曾经使用过VB,所以无法完全阅读语法,但它肯定调用了SetWindowLong来更改此窗口的WindowProc。WindowProc是一个消息处理程序,用于处理发送到窗口的所有消息。 - Serge

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接