[英]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.