WinAPI 中是否有与 GLFW 的 glfwGetWindowUserPointer 等效的函数?

Is there an equivalent function in WinAPI to GLFW's glfwGetWindowUserPointer?

所以我使用 WinAPI 创建了一个 window,并且我有一个处理 window 消息的 WindowProc 回调函数。在此函数中,我想访问我自己的围绕 WinAPI HWND 的结构,以更改存储在该结构中的其他变量。

我知道 GLFW 提供了函数 glfwSetWindowUserPointerglfwGetWindowUserPointer 来满足这个需求。我尝试搜索 GetWindowUserPointerWindowUserPointerWindowPointerUserPointer https://docs.microsoft.com/en-us/windows/desktop,但没有找到任何结果。

是否有任何功能或其他方法可以使用 WinAPI 满足此需求?

SetWindowLongPtr() and GetWindowLongPtr()

window 创建者总是可以使用 GWLP_USERDATA,您可以存储您选择的任何数据指针。如果在注册 window class 时保留额外的 space (cbWndExtra),您也可以在正偏移量处存储额外的数据。

一个常用的技术是使用WM_NCCREATECreateWindowExlpParam参数复制一个指针,然后使用[=17=将其复制到window数据].然后 window 过程中的其他情况可以检索指针并获取关联的对象。

Raymond Chen a complete explanation 使用此功能将消息转发到成员函数。