HDITEMW 结构 (commctrl.h)

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

语法

typedef struct _HD_ITEMW {
  UINT    mask;
  int     cxy;
  LPWSTR  pszText;
  HBITMAP hbm;
  int     cchTextMax;
  int     fmt;
  LPARAM  lParam;
  int     iImage;
  int     iOrder;
  UINT    type;
  void    *pvFilter;
  UINT    state;
} HDITEMW, *LPHDITEMW;

成员

mask

类型: UINT

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

含义
HDI_BITMAP
hbm 成员有效。
HDI_DI_SETITEM
HDM_GETITEM处理消息时,标头控件可能没有完成请求所需的所有值。 在这种情况下,控件必须通过 HDN_GETDISPINFO 通知将值调用回应用程序。 如果HDM_GETITEM消息中传递了 HDI_DI_SETITEM ,则控件将缓存从 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

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

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 指示整数。 使用 HDFT_ISSTRING 标志时 ,pvFilter 是指向 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