HDITEMA 结构 (commctrl.h)

包含有关标头控件中的项的信息。 此结构取代 HD_ITEM 结构。

语法

typedef struct _HD_ITEMA {
  UINT    mask;
  int     cxy;
  LPSTR   pszText;
  HBITMAP hbm;
  int     cchTextMax;
  int     fmt;
  LPARAM  lParam;
  int     iImage;
  int     iOrder;
  UINT    type;
  void    *pvFilter;
  UINT    state;
} HDITEMA, *LPHDITEMA;

成员

mask

类型:UINT

指示哪些其他结构成员包含有效数据的标志,或者必须填充。 此成员可以是以下值的组合:

价值 意义
HDI_BITMAP
hbm 成员有效。
HDI_DI_SETITEM
处理消息 HDM_GETITEM时,标头控件可能没有完成请求所需的所有值。 在这种情况下,控件必须通过 HDN_GETDISPINFO 通知将应用程序调用回应用程序以获取值。 如果HDI_DI_SETITEM已在 HDM_GETITEM 消息中传递,控件将缓存从HDN_GETDISPINFO返回的任何值(否则这些值保持不变)。
HDI_FORMAT
fmt 成员有效。
HDI_FILTER
类型pvFilter 成员有效。 这用于筛选出 类型 成员中指定的值。
HDI_HEIGHT
与HDI_WIDTH相同。
HDI_IMAGE
iImage 成员有效,并指定要与项一起显示的图像。
HDI_LPARAM
lParam 成员有效。
HDI_ORDER
iOrder 成员有效,并指定项的顺序值。
HDI_STATE

版本 6.00 及更高版本状态 成员有效。

HDI_TEXT
pszTextcchTextMax 成员有效。
HDI_WIDTH
cxy 成员有效,并指定项的宽度。

cxy

类型:int

项的宽度或高度。

pszText

类型:LPTSTR

指向项字符串的指针。 如果要从控件检索文本,则必须初始化此成员以指向字符缓冲区。 如果此成员设置为LPSTR_TEXTCALLBACK,控件将通过发送 HDN_GETDISPINFO 通知代码来请求此项的文本信息。 请注意,尽管标头控件允许将任何长度的字符串存储为项文本,但仅显示前 260 TCHAR

hbm

类型:HBITMAP

项位图的句柄。

cchTextMax

类型:int

项字符串的长度,以 TCHARs为单位。 如果要从控件中检索文本,则此成员必须包含由 pszText指定的地址处 TCHARs 的数目。

fmt

类型:int

指定项格式的标志。

价值 意义
文本理由:
设置以下标志之一以指定文本理由:
HDF_CENTER
项的内容居中。
HDF_LEFT
项的内容是左对齐的。
HDF_RIGHT
项的内容右对齐。
显示:
设置以下标志之一以控制显示:
HDF_BITMAP
该项显示位图。
HDF_BITMAP_ON_RIGHT
位图显示在文本右侧。
HDF_OWNERDRAW
标头控件的所有者绘制项。
HDF_STRING
该项显示字符串。
组合标志:
上述值可以与:
HDF_IMAGE
显示图像列表中的图像。 通过发送 HDM_SETIMAGELIST 消息来指定图像列表。 在此结构的 iImage 成员中指定图像的索引。
HDF_JUSTIFYMASK
隔离与上表中列出的三个对齐标志对应的位。
HDF_RTLREADING
通常,窗口显示从左到右的文本(LTR)。 Windows 可以 镜像 来显示从右到左(RTL)的希伯来语或阿拉伯语等语言。 通常,标头文本的读取方向与其父窗口中的文本相同。 如果设置了HDF_RTLREADING,则标头文本将以与父窗口中的文本相反的方向读取。
HDF_SORTDOWN

版本 6.00 及更高版本。 在此项目上绘制向下箭头。 这通常用于指示当前窗口中的信息按降序对此列进行排序。 此标志不能与HDF_IMAGE或HDF_BITMAP结合使用。

HDF_SORTUP

版本 6.00 及更高版本。 在此项目上绘制向上箭头。 这通常用于指示当前窗口中的信息按升序对此列进行排序。 此标志不能与HDF_IMAGE或HDF_BITMAP结合使用。

HDF_CHECKBOX

版本 6.00 及更高版本。 该项将显示一个复选框。 仅当标头控件上首次设置 HDS_CHECKBOXES 样式时,标志才有效。

HDF_CHECKED

版本 6.00 及更高版本。 该项将显示一个选中的复选框。 仅当同时设置HDF_CHECKBOX时,标志才有效。

HDF_FIXEDWIDTH

版本 6.00 及更高版本。 用户操作无法修改项的宽度以调整其大小。

HDF_SPLITBUTTON

版本 6.00 及更高版本。 该项显示拆分按钮。 单击拆分按钮时,将发送HDN_DROPDOWN通知。

lParam

类型:LPARAM

应用程序定义的项数据。

iImage

类型:int

映像列表中的图像的从零开始的索引。 除了在 hbm 字段中指定的任何图像外,指定图像还会显示在标头项中。 如果 iImage 设置为I_IMAGECALLBACK,则控件将使用 HDN_GETDISPINFO 通知代码请求此项的文本信息。 若要清除图像,请将此值设置为I_IMAGENONE。

iOrder

类型:int

项在标题控件中的显示顺序,从左到右。 也就是说,最左侧项的值为 0。 右侧下一项的值为 1,依此等。

type

类型:UINT

pvFilter指定的筛选器的类型。 可能的类型包括:

价值 意义
HDFT_ISSTRING
字符串数据。
HDFT_ISNUMBER
数值数据。
HDFT_HASNOVALUE
忽略 pvFilter
HDFT_ISDATE

版本 6.00 及更高版本。 日期数据。 pvFilter 成员是指向 SYSTEMTIME 结构的指针。

pvFilter

类型:void*

应用程序定义数据项的地址。 数据筛选器类型通过设置成员的标志值来确定。 使用HDFT_ISSTRING标志指示字符串,HDFT_ISNUMBER指示整数。 pvFilter 使用HDFT_ISSTRING标志时,是指向 HDTEXTFILTER 结构的指针。

state

类型:UINT

状态。 此成员唯一有效的受支持值如下:

价值 意义
HDIS_FOCUSED
该项具有键盘焦点。

言论

注释 Comctl32.dll 版本 6 不可再发行,但它包含在 Windows 中。 若要使用 Comctl32.dll 版本 6,请在清单中指定它。 有关清单的详细信息,请参阅 启用视觉样式
 

注意

commctrl.h 标头将 HDITEM 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows Vista [仅限桌面应用]
支持的最低服务器 Windows Server 2003 [仅限桌面应用]
标头 commctrl.h