MFC-cListctrl行高、字体、字体和背景颜色

效果预览:
cListctrl行高、字体、字体和背景颜色
1.行高

//暂时提供一种用图片设置行高的方法
CImageList imagelist;
imagelist.Create(1, 30, ILC_COLOR, 1, 1);
m_List.SetImageList(&imagelist, LVSIL_SMALL);

2.字体

CFont*   font = CFont::FromHandle(hfont);
SetFont(font);
//高度 宽度 显示角度 角度 磅数 斜体 下划线 删除线 字符集 输出精度 裁剪精度 逻辑字体与输出设备的实际字体之间的精度 字间距 字体名
m_FontTextList.CreateFontA(16, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, "宋体");
m_FontBdcat.CreateFontA(16, 0, 0, 0, 200, 0, 0, 0, 0, 0, 0, 0, 0, NULL);
m_List.SetFont(&m_FontTextList);

3.字体和背景颜色

//头文件
protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持
	afx_msg void OnPaint();
	afx_msg void OnCustomdrawList(NMHDR *pNMHDR, LRESULT *pResult);
	DECLARE_MESSAGE_MAP()

//cpp
//添加消息映射
BEGIN_MESSAGE_MAP(UGTest, CDialogEx)
	ON_NOTIFY(NM_CUSTOMDRAW, IDC_LIST_UG, OnCustomdrawList)
END_MESSAGE_MAP()
//自绘表格
void UGTest::OnCustomdrawList(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMTVCUSTOMDRAW pNMCD = reinterpret_cast<LPNMTVCUSTOMDRAW>(pNMHDR);
	// TODO: 在此添加控件通知处理程序代码
	NMCUSTOMDRAW nmCustomDraw = pNMCD->nmcd;
	switch (nmCustomDraw.dwDrawStage)
	{
	case CDDS_ITEMPREPAINT:
		if (COLOR_BLUE == nmCustomDraw.lItemlParam)
		{
			//pNMCD->clrTextBk = RGB(255, 255, 255);
			pNMCD->clrText = RGB(86, 156, 214);
		}
		else if (COLOR_GREEN == nmCustomDraw.lItemlParam){
			//pNMCD->clrTextBk = RGB(255, 255, 255);		//背景颜色
			pNMCD->clrText = RGB(10, 148, 28);		//文字颜色
		}
		else if (COLOR_RED == nmCustomDraw.lItemlParam)
		{
			//pNMCD->clrTextBk = RGB(255, 255, 255);		//背景颜色
			pNMCD->clrText = RGB(247, 76, 49);		//文字颜色
		}
		else if (COLOR_DEFAULT == nmCustomDraw.lItemlParam)
		{
			//pNMCD->clrTextBk = RGB(255, 255, 255);
			//pNMCD->clrText = RGB(0, 0, 0);
		}
		else{
		}
		COLORREF crBk;		//奇偶判断	crText, 	
		if ((nmCustomDraw.dwItemSpec % 2) == 0){
			//crText = RGB(0, 0, 0);//RGB(32,32,255);			
			crBk = RGB(255, 255, 255);
		}
		else if ((nmCustomDraw.dwItemSpec % 2) == 1){
			//crText = RGB(0, 0, 0);
			crBk = RGB(228, 236, 249);
		}
		else{
			//crText = RGB(0, 0, 0);
			crBk = RGB(0, 0, 126);
		}
		//pNMCD->clrText = crText;
		pNMCD->clrTextBk = crBk;
		break;
	default:
		break;
	}
	*pResult = 0;
	*pResult |= CDRF_NOTIFYPOSTPAINT;		//必须有,不然就没有效果
	*pResult |= CDRF_NOTIFYITEMDRAW;		//必须有,不然就没有效果
	return;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值