但是可以直接存储数据,例如“一个句柄”,“一个bool,一个”int“或其他更大的数据.
从http://msdn.microsoft.com/zh-tw/library/windows/desktop/ms644898%28v=vs.85%29.aspx开始,它说:
设置应用程序专用的新额外信息,例如句柄或指针.
,所以我猜存储一个句柄就可以了.我也使用这种方法存储RGB值没有问题.
但我不知道做这样的事情是不是一个好主意.我们可以存储其他大的数据(例如结构)吗?
p.s:这个问题的动机是:当我创建一个对话框窗口时,我想存储每个控件的数据.当然我可以在窗口过程中使用静态变量并将指针(对它们)传递给SetwindowLongPtr函数.但这在理论上并不“完美”,因为当对话窗口关闭时,我不再需要这些数据了.当然,在实践中,我需要使用的数据非常小,我不应该关心内存的使用.但我仍然想知道是否有更好的方法.
@R_403_6120@SetWindowLongPtr
函数可以存储一块与LONG_PTR大小相同的数据(很可能是32位或64位).如果您的数据可以存储在那个大小,那么你很好.即一个bool会很好,大多数句柄也会这样(因为句柄也是指针). 典型的RGB值也可以工作,因为它存储为三个字节(每个颜色分量一个字节)或四个字节(Alpha通道的额外字节).
如果您需要更多空间,则应在其他位置分配结构并存储指向该结构的指针.
总结以上是内存溢出为你收集整理的可以使用SetWindowLongPtr GWLP_USERDATA来存储数据(不是指针)全部内容,希望文章能够帮你解决可以使用SetWindowLongPtr GWLP_USERDATA来存储数据(不是指针)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)