WinAPI 中是否有与 GLFW 的 glfwGetWindowUserPointer 等效的函数?
Is there an equivalent function in WinAPI to GLFW's glfwGetWindowUserPointer?
所以我使用 WinAPI 创建了一个 window,并且我有一个处理 window 消息的 WindowProc 回调函数。在此函数中,我想访问我自己的围绕 WinAPI HWND
的结构,以更改存储在该结构中的其他变量。
我知道 GLFW 提供了函数 glfwSetWindowUserPointer
和 glfwGetWindowUserPointer
来满足这个需求。我尝试搜索 GetWindowUserPointer、WindowUserPointer、WindowPointer 和 UserPointer https://docs.microsoft.com/en-us/windows/desktop,但没有找到任何结果。
是否有任何功能或其他方法可以使用 WinAPI 满足此需求?
有SetWindowLongPtr()
and GetWindowLongPtr()
window 创建者总是可以使用 GWLP_USERDATA
,您可以存储您选择的任何数据指针。如果在注册 window class 时保留额外的 space (cbWndExtra
),您也可以在正偏移量处存储额外的数据。
一个常用的技术是使用WM_NCCREATE
从CreateWindowEx
的lpParam
参数复制一个指针,然后使用[=17=将其复制到window数据].然后 window 过程中的其他情况可以检索指针并获取关联的对象。
Raymond Chen a complete explanation 使用此功能将消息转发到成员函数。
所以我使用 WinAPI 创建了一个 window,并且我有一个处理 window 消息的 WindowProc 回调函数。在此函数中,我想访问我自己的围绕 WinAPI HWND
的结构,以更改存储在该结构中的其他变量。
我知道 GLFW 提供了函数 glfwSetWindowUserPointer
和 glfwGetWindowUserPointer
来满足这个需求。我尝试搜索 GetWindowUserPointer、WindowUserPointer、WindowPointer 和 UserPointer https://docs.microsoft.com/en-us/windows/desktop,但没有找到任何结果。
是否有任何功能或其他方法可以使用 WinAPI 满足此需求?
有SetWindowLongPtr()
and GetWindowLongPtr()
window 创建者总是可以使用 GWLP_USERDATA
,您可以存储您选择的任何数据指针。如果在注册 window class 时保留额外的 space (cbWndExtra
),您也可以在正偏移量处存储额外的数据。
一个常用的技术是使用WM_NCCREATE
从CreateWindowEx
的lpParam
参数复制一个指针,然后使用[=17=将其复制到window数据].然后 window 过程中的其他情况可以检索指针并获取关联的对象。
Raymond Chen a complete explanation 使用此功能将消息转发到成员函数。