前言:
学习笔记,随时更新。如有谬误,欢迎指正。
说明:
红色字体为较为重要部分。绿色字体为个人理解部分。
原文链接:https://learn.microsoft.com/en-us/windows/win32/winmsg/window-properties
1 窗口属性
1.1 窗口属性概述
1.1.1 关于窗口属性
窗口属性是分配给窗口的任意数据。窗口属性通常是特定于窗口的数据的句柄,但实际上它可以是任何值。每个窗口属性都有一个字符串名称标识。
1.1.1.1 使用窗口属性的优点
窗口属性通常用于将数据与子类窗口或多文档接口( MDI )应用程序中的窗口关联。在任何一种情况下,由于以下两个原因,通过在 CreateWindow 函数或类结构中指定的额外字节都不方便:
应用程序可能不知道有多少个额外字节可用,也不知道空间的使用方式。通过使用窗口属性,应用程序可以将数据与窗口相关联,而无需访问额外的字节。应用程序必须使用偏移量访问额外的字节。但是窗口属性按其字符串标识符(而不是偏移量)访问。
1.1.1.2 分配窗口属性
SetProp 函数将窗口属性及其字符串标识符分配给窗口。GetProp 函数获取由指定字符串标识的窗口属性。RemoveProp 函数切断窗口和窗口属性之间的关联,但不销毁数据本身。若要销毁数据本身,请使用相应的函数释放 RemoveProp 返回的句柄。
1.1.1.3 枚举窗口属性
EnumProps 和 EnumPropsEx 函数使用应用程序定义的回调函数枚举窗口的所有属性。有关回调函数的详细信息,请参阅 PropEnumProc。
1.1.2 使用窗口属性
示例:https://learn.microsoft.com/en-us/windows/win32/winmsg/using-window-properties。
1.2 窗口属性参考目录
1.2.1 窗口属性函数
窗口属性函数。