admin
2025-04-08 5c9991be21f57781573f04961ec511ac2938ea3d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include "common/pch.h"
#include "QueueListCtrl.h"
 
 
void QueueListCtrl::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
    CDC* pDC = CDC::FromHandle(lpDrawItemStruct->hDC);
    CRect rcItem(lpDrawItemStruct->rcItem);
    int nItem = lpDrawItemStruct->itemID;
    LVITEM lvItem;
    lvItem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE;
    lvItem.iItem = nItem;
    lvItem.iSubItem = 0;
    lvItem.stateMask = 0xFFFF; // Get all state flags
    GetItem(&lvItem);
 
    // »æÖƱ³¾°
    pDC->FillSolidRect(rcItem, RGB(255, 255, 255)); // ÉèÖñ³¾°ÑÕÉ«
 
    // »æÖÆÎı¾
    CString strText = GetItemText(nItem, 0);
    pDC->SetTextColor(RGB(0, 0, 0)); // ÉèÖÃÎı¾ÑÕÉ«
    pDC->DrawText(strText, rcItem, DT_LEFT | DT_VCENTER | DT_SINGLELINE);
 
    // »æÖÆÍ¼±ê£¨Èç¹ûÐèÒª£©
    if (lvItem.iImage != -1)
    {
        CImageList* pImageList = GetImageList(LVSIL_SMALL);
        if (pImageList)
        {
            IMAGEINFO imageInfo;
            pImageList->GetImageInfo(lvItem.iImage, &imageInfo);
            CRect rcImage = imageInfo.rcImage;
            pImageList->Draw(pDC, lvItem.iImage, CPoint(rcItem.left, rcItem.top), ILD_NORMAL);
        }
    }
}