每个应用程序必须重新绘制列表项时,所有者绘制的组合框会将WM_DRAWITEM消息发送到其父窗口或对话框过程。【lParam的】参数指向DRAWITEMSTRUCT结构,用于标识控件和列表项。它还包含绘制项目所需的信息。
创建平方米对话框中的示例显示与食品组关联的列表项目文本和位图。如果项目有焦点,它也绘制一个焦点矩形。在显示文本之前,该示例根据所选项目设置前景色和背景颜色。由于组合框具有CBS_HASSTRINGS样式,组合框将使用CB_GETLBTEXT消息维护可检索的每个列表项的文本。
用于列表项目的位图取决于食物组。InitGroupList使用CB_SETITEMDATA消息将常量与每个列表项相关联,标识相应的食物组。窗口过程使用包含在DRAWITEMSTRUCT结构的的ItemData成员中的此值来确定要显示的位图。系统对每个食物组符号使用两个位图:使用SRCAND光栅操作的单色位图,以擦除图像后面的不规则区域,以及使用SRCPAINT栅格操作绘制图像的颜色位图。