我知道可以使用 SetWindowLongPtr + GWLP_USERDATA 来存储指向某些数据的指针。但是可以直接存储数据,例如“句柄”、“布尔值”、“整数”或其他更大的数据。
从http://msdn.microsoft.com/zh-tw/library/windows/desktop/ms644898%28v=vs.85%29.aspx,它说:
设置应用程序专用的新额外信息,例如句柄或指针。
,所以我想存储一个句柄是可以的。我也使用这种方法毫无问题地存储 RGB 值。但我不知道这样做是否是个好主意。我们可以存储其他大数据(例如,结构)吗?
ps:这个问题的动机是:当我创建一个对话窗口时,我想为它的每个控件存储数据。当然,我可以在窗口过程中使用静态变量并将指针(指向它们)传递给 SetWindowLongPtr 函数。但这在理论上并不“完美”,因为当对话框窗口关闭时,我不再需要这些数据了。当然,在实践中,我需要使用的数据非常少,应该不用关心内存的使用情况。但我仍然想知道是否有更好的方法。