MFC中CListCtrl改变选中行(选中列)的颜色实现选中高亮的效果

本文介绍了在MFC项目中如何通过CListCtrl实现选中行高亮显示的效果。通过添加SelectRow和SelectCol变量记录选中行和列,并在OnNMCustomdraw函数中判断并设置颜色,以及在OnNMClick中更新选中状态,达到选中单元格高亮的目的。
摘要由CSDN通过智能技术生成

       在项目中遇到了这样的需求,需要对选中行进行高亮,查了一下相关的资料,记录一下自己采用的方法。

       先在List控件所在类中(这里是CListshow,继承于CListCtrl)添加两个变量SelectRow和SelectCol,用于保存鼠标点击的单元格的行数和列数:

class CListshow : public CListCtrl
{
    ......
    int SelectRow = -1;
    int SelectCol = -1;
    ......
}

接着为CListCtrl添加消息响应函数OnNMCustomdraw

OnNMCustomdraw定义如下:

void CListshow::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult)
{
	NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>(pNMHDR);
	CLinkItem *pLink = NULL;
	*pResult = 0;
	int nItem = -111;
	int nSubItem = -111;
	COLORREF clrNewTextColor, clrNewBkColor;
	//Switch between different draw stages
	switch (pLVCD->
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值