关于窗口属性

window 属性是分配给窗口的任何数据。 窗口属性通常是特定于窗口的数据的句柄,但它可以是任何值。 每个窗口属性都由一个字符串名称标识。 有几个函数使应用程序能够使用窗口属性。 本概述讨论以下主题:

使用窗口属性的优点

窗口属性通常用于将数据与子类化窗口或多文档界面中的窗口关联 (MDI) 应用程序。 在任一情况下,由于以下两个原因,使用 CreateWindow 函数或类结构中指定的额外字节都不方便:

  • 应用程序可能不知道有多少个额外字节可用,也不知道空间的使用方式。 通过使用窗口属性,应用程序可以将数据与窗口相关联,而无需访问额外的字节。
  • 应用程序必须使用偏移量访问额外的字节。 但是,窗口属性按其字符串标识符(而不是偏移量)访问。

有关子类的详细信息,请参阅窗口过程子类。 有关 MDI 窗口的详细信息,请参阅 多文档接口

分配窗口属性

SetProp 函数将窗口属性及其字符串标识符分配给窗口。 GetProp 函数检索由指定字符串标识的窗口属性。 RemoveProp 函数销毁窗口和窗口属性之间的关联,但不销毁数据本身。 若要销毁数据本身,请使用相应的函数释放 RemoveProp 返回的句柄。

枚举窗口属性

EnumPropsEnumPropsEx 函数使用应用程序定义的回调函数枚举窗口的所有属性。 有关回调函数的详细信息,请参阅 PropEnumProc

EnumPropsEx 包含回调函数使用的应用程序定义数据的额外参数。 有关回调函数的详细信息,请参阅 PropEnumProcEx