您可以将标题控件的各个项目定义为所有者绘制的项目。使用这种技术可以让您比头文件外观上的控制更多。
您可以使用HDM_INSERTITEM消息将新的所有者绘制的项目插入标题控件或HDM_SETITEM消息,将现有项目更改为所有者绘制的项目。这两个消息都包含HD_ITEM结构的地址,该结构应将FMT成员设置为HDF_OWNERDRAW值。
当头控件必须绘制所有者绘制的项目时,它会将WM_DRAWITEM消息发送到父窗口。消息的【wParam中】参数是头控件的子窗口标识符,【lParam的】参数是指向DRAWITEMSTRUCT结构的指针。父窗口使用结构中的信息绘制项目。对于头控制中的所有者项目,DRAWITEMSTRUCT结构包含以下信息。
会员 | 描述 |
CtlType | ODT_HEADER所有者控制类型。 |
CtlID | 标题控件的子窗口标识符。 |
itemID | 要绘制的项目的索引。 |
itemAction | ODA_DRAWENTIRE绘图动作标志。 |
ITEMSTATE | ODS_SELECTED绘图动作标志,如果光标在项目上,鼠标按钮已关闭。否则,该成员为零。 |
hwndItem | 处理头控制。 |
hDC | 处理头部控件的设备上下文。 |
rcItem | 要绘制的标题项的坐标。坐标相对于标题控件的左上角。 |
的ItemData | 与项目关联的应用程序定义的32位值。 |