CListBox::DrawItem 是 MFC 中 CListBox 类的一个公共方法,用于绘制列表框的项。

具体语法如下:
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