具体语法如下:
void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
参数说明:
- lpDrawItemStruct: 指向一个 DRAWITEMSTRUCT 结构的指针,包含了有关绘制项的信息。
DrawItem 方法通常用于自定义绘制列表框中的每一项,以便显示不同的外观或图标。
示例代码如下:
void CMyListBox::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
CDC dc;
dc.Attach(lpDrawItemStruct->hDC);
// 绘制选定和非选定项的外观
if (lpDrawItemStruct->itemState & ODS_SELECTED)
{
dc.SetTextColor(::GetSysColor(COLOR_HIGHLIGHTTEXT));
dc.SetBkColor(::GetSysColor(COLOR_HIGHLIGHT));
}
else
{
dc.SetTextColor(::GetSysColor(COLOR_WINDOWTEXT));
dc.SetBkColor(::GetSysColor(COLOR_WINDOW));
}
// 绘制文本
CString strText;
GetText(lpDrawItemStruct->itemID, strText);
dc.DrawText(strText, -1, &lpDrawItemStruct->rcItem, DT_SINGLELINE | DT_VCENTER);
dc.Detach();
}
在这个例子中,DrawItem 方法被重写以自定义绘制列表框的每一项。在绘制时,根据项的选中状态,设置相应的文本颜色和背景颜色。这样可以使选中的项在视觉上与非选中的项有所区别。
转载请注明出处:http://www.zyzy.cn/article/detail/18468/MFC/CListBox