MFC中 使用CListCtrl 如何设置网格线的颜色 不影响原来功能
时间: 2024-02-01 20:13:57 浏览: 48
可以通过在 CListCtrl 的 OnNotify() 函数中捕获 NM_CUSTOMDRAW 通知消息,然后在 CustomDraw() 函数中设置网格线的颜色。
代码示例:
```
// 声明 NM_CUSTOMDRAW 消息处理函数
afx_msg void OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult);
// 在消息映射中添加 NM_CUSTOMDRAW 的处理函数
BEGIN_MESSAGE_MAP(CMyListCtrl, CListCtrl)
ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnNMCustomdraw)
END_MESSAGE_MAP()
void CMyListCtrl::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLVCUSTOMDRAW lplvcd = reinterpret_cast<LPNMLVCUSTOMDRAW>(pNMHDR);
*pResult = CDRF_DODEFAULT;
switch (lplvcd->nmcd.dwDrawStage)
{
case CDDS_PREPAINT:
*pResult = CDRF_NOTIFYITEMDRAW;
break;
case CDDS_ITEMPREPAINT:
*pResult = CDRF_NOTIFYSUBITEMDRAW;
break;
case CDDS_SUBITEM | CDDS_ITEMPREPAINT:
{
// 设置网格线的颜色为红色
lplvcd->clrTextBk = RGB(255, 0, 0);
*pResult = CDRF_NEWFONT;
break;
}
}
}
```
在 CustomDraw() 函数中,我们根据绘制阶段的不同,设置了不同的处理方式。在 CDDS_SUBITEM | CDDS_ITEMPREPAINT 绘制子项时,我们将网格线的颜色设置为红色。你可以自行修改颜色值,以达到你想要的颜色效果。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)