CListCtrl做出漂亮的界面CListCtrlCl头文件
#pragma once
#include "HeaderCtrlCl.h"
// CListCtrlCl
class CListCtrlCl : public CListCtrl
{
DECLARE_DYNAMIC(CListCtrlCl)
public:
CHeaderCtrlCl m_Header;
CListCtrlCl();
virtual ~CListCtrlCl();
protected:
DECLARE_MESSAGE_MAP()
virtual void PreSubclassWindow();
public:
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
public:
afx_msg void OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct);
void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);
public:
// 行高
int m_nRowHeight;
int InsertColumn(int nCol, LPCTSTR lpszColumnHeading,
int nFormat = LVCFMT_LEFT, int nWidth = -1, int nSubItem = -1);
public:
// Gradient - 渐变系数,立体背景用,不用渐变设为0
void SetHeaderBKColor(int R, int G, int B, int Gradient);
public:
// 设置表头高度
void SetHeaderHeight(float Height);
CPtrList m_ptrListCol; //保存列颜色
CPtrList m_ptrListItem; //保存Item颜色表
CPtrList m_colTextColor; //保存列字体颜色
CPtrList m_ItemTextColor; //保存单元格字体颜色
bool FindColColor(int col ,COLORREF &color); //查找列颜色
bool FindItemColor(int col,int row,COLORREF &color);
bool FindColTextColor(int col,COLORREF &color); //查找列字体颜色
bool FindItemTextColor(int col,int row,COLORREF &color);
void SetColColor(int col,COLORREF color); //设置列颜色
void SetItemColor(int col,int row,COLORREF color); //设置Item颜色
void SetColTextColor(int col,COLORREF color); //设置列文本颜色
void SetItemTextColor(int col,int row,COLORREF color);
void SetRowHeigt(int nHeight); //设置行高
void SetHeaderFontHW(int nHeight,int nWith); //设置表头字体大小
void SetHeaderTextColor(COLORREF color);
COLORREF m_color;
BOOL SetTextColor(COLORREF cr);
void SetFontHW(int nHeight,int nWith); //设置字体的高和宽
public:
// 字体高度
int m_fontHeight;
public:
// 字体宽度
int m_fontWith;
};
#include "HeaderCtrlCl.h"
// CListCtrlCl
class CListCtrlCl : public CListCtrl
{
DECLARE_DYNAMIC(CListCtrlCl)
public:
CHeaderCtrlCl m_Header;
CListCtrlCl();
virtual ~CListCtrlCl();
protected:
DECLARE_MESSAGE_MAP()
virtual void PreSubclassWindow();
public:
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
public:
afx_msg void OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct);
void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);
public:
// 行高
int m_nRowHeight;
int InsertColumn(int nCol, LPCTSTR lpszColumnHeading,
int nFormat = LVCFMT_LEFT, int nWidth = -1, int nSubItem = -1);
public:
// Gradient - 渐变系数,立体背景用,不用渐变设为0
void SetHeaderBKColor(int R, int G, int B, int Gradient);
public:
// 设置表头高度
void SetHeaderHeight(float Height);
CPtrList m_ptrListCol; //保存列颜色
CPtrList m_ptrListItem; //保存Item颜色表
CPtrList m_colTextColor; //保存列字体颜色
CPtrList m_ItemTextColor; //保存单元格字体颜色
bool FindColColor(int col ,COLORREF &color); //查找列颜色
bool FindItemColor(int col,int row,COLORREF &color);
bool FindColTextColor(int col,COLORREF &color); //查找列字体颜色
bool FindItemTextColor(int col,int row,COLORREF &color);
void SetColColor(int col,COLORREF color); //设置列颜色
void SetItemColor(int col,int row,COLORREF color); //设置Item颜色
void SetColTextColor(int col,COLORREF color); //设置列文本颜色
void SetItemTextColor(int col,int row,COLORREF color);
void SetRowHeigt(int nHeight); //设置行高
void SetHeaderFontHW(int nHeight,int nWith); //设置表头字体大小
void SetHeaderTextColor(COLORREF color);
COLORREF m_color;
BOOL SetTextColor(COLORREF cr);
void SetFontHW(int nHeight,int nWith); //设置字体的高和宽
public:
// 字体高度
int m_fontHeight;
public:
// 字体宽度
int m_fontWith;
};
...全文
相关推荐
可自定义的CListCtrlCL类
本文介绍CHeaderCtrlCl和CListCtrlCl两个类,它们分别继承自CHeaderCtrl和CListCtrl,用于自定义表头和列表控件的绘制、布局和行为。CHeaderCtrlCl类提供
clistctrl换肤
在这个场景中,"clistctrlcl"可能是指一个自定义的`CListCtrl`类,用于扩展或优化标准控件的功能,比如添加换肤功能。"
为CListCtrl上的每一项添加CCheckBox并响应点击
以上步骤实现了在CListCtrl中添加可点击的CheckBox,并响应用户的点击操作。这个功能在很多应用中都很常见,比如在设置界面中让用户选择多项功能。
CListCtrlCl 自绘CCtrlList 单元格可以自定义颜色
通过自绘,开发者可以创建出符合自己应用需求的独特界面,提升软件的美观度和实用性。
MFC_CListCtrlCL_正确版本.rar
该项目实现了一个基于MFC的增强型列表控件,通过继承CListCtrl和CHeaderCtrl,支持自定义绘制、渐变背景、文本对齐、字体与颜色设置。核心功能包括OwnerDraw模式下的单元格渲染、表


界面
