簡體   English   中英

顏色CListCtrl列不帶CDDS_ITEMPREPAINT階段的背景

[英]Color CListCtrl column Background without the CDDS_ITEMPREPAINT phase

我想將第一列的背景塗成灰色。 CDDS_ITEMPREPAINT的問題是,僅在有項目時才為背景着色。 像這樣:

在此處輸入圖片說明

目前,這是我的代碼:

{
LPNMLVCUSTOMDRAW pNMLVCD = reinterpret_cast<LPNMLVCUSTOMDRAW>(pNMHDR);
    *pResult = CDRF_DODEFAULT;
    switch (pNMLVCD->nmcd.dwDrawStage)
    {
    case CDDS_PREPAINT:
        *pResult = CDRF_NOTIFYITEMDRAW;
        break;

    case CDDS_ITEMPREPAINT:
        *pResult = CDRF_NOTIFYSUBITEMDRAW;
        break;

    case CDDS_ITEMPREPAINT | CDDS_SUBITEM:
        if (pNMLVCD->iSubItem == 0)
        {
            pNMLVCD->clrTextBk = RGB(97,97,97);
        }
        else
        {
            pNMLVCD->clrTextBk = RGB(255,255,255);
        }
        break;
    }
}

誰能解釋我該如何解決?

無法通過自定義繪制完成此操作。

即使使用ownerdraw,例程也僅用於存在項。 要給空閑區域着色,您可能需要覆蓋WM_ERASEBKGND,並且需要在其中做您自己的事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM