鱼C论坛

 找回密码
 立即注册
查看: 2617|回复: 2

win32 sdk listview自绘

[复制链接]
发表于 2016-6-1 10:27:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
LRESULT ListViewCustomDraw(HWND hwnd, NMLVCUSTOMDRAW* pcd)  
{   
    int nResult = CDRF_DODEFAULT;   
      
    if (CDDS_PREPAINT == pcd->nmcd.dwDrawStage)  
    {  
             return CDRF_DODEFAULT | CDRF_NOTIFYSUBITEMDRAW;
    }  
    else if (CDDS_ITEMPREPAINT == pcd->nmcd.dwDrawStage)  
    {  
       return nResult = CDRF_NOTIFYSUBITEMDRAW;  
    }  
    else if ((CDDS_ITEMPREPAINT | CDDS_SUBITEM) == pcd->nmcd.dwDrawStage)  
    {  
        nResult = CDRF_SKIPDEFAULT;  
         
        const DWORD dwStyle = DT_LEFT | DT_SINGLELINE | DT_VCENTER | DT_NOPREFIX | DT_END_ELLIPSIS;  
         
        HDC hdc = pcd->nmcd.hdc;   
        SetBkMode(hdc,TRANSPARENT);  
        int nItem = pcd->nmcd.dwItemSpec;   
        int nSubItem = pcd->iSubItem;   
         
        BOOL bItemSelected = ListView_GetItemState(hwnd, nItem, LVIS_SELECTED);  
         
        RECT subItemRect;  
       ListView_GetSubItemRect(hwnd, nItem, nSubItem, LVIR_BOUNDS, &subItemRect);  
        
        HBRUSH brsh=0;   
        if (bItemSelected)  
        {   
           brsh=CreateSolidBrush(RGB(255, 128, 128));  
            FillRect(hdc, &subItemRect,brsh);  
        }  
       else  
        {  
           brsh=CreateSolidBrush(RGB(51+nItem*30, 153, 255-nItem*30));  
            FillRect(hdc, &subItemRect,brsh);  
        }  
      if(brsh) DeleteObject(brsh);  
  
       TCHAR szText[260];  
        ListView_GetItemText(hwnd, nItem, nSubItem, szText, 260);  
        DrawText(hdc, szText, strlen(szText), &subItemRect, dwStyle);  
    }  
return nResult;  
}

代码如上,始终无法进入CDDS_ITEMPREPAINT | CDDS_SUBITEM,能进入CDDS_PREPAINT消息。
CreateWindow时已经加入了LVS_REPORT样式。
希望大神指教一二。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-6-2 08:56:41 | 显示全部楼层
怎么没人来指点一下啊???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-15 19:52:56 | 显示全部楼层
顶顶顶~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 01:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表