104 lines
2.2 KiB
C++
104 lines
2.2 KiB
C++
#ifndef LIST_CONTROL_HEAD_FILE
|
|
#define LIST_CONTROL_HEAD_FILE
|
|
|
|
#pragma once
|
|
|
|
#include "ModuleManagerHead.h"
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
|
|
//颜色定义
|
|
#define CR_NORMAL_TK RGB(255,255,255) //列表背景
|
|
#define CR_NORMAL_BK RGB(255,255,255) //列表背景
|
|
|
|
//排序位置
|
|
#define SORT_POSITION_AFTER 1 //后面位置
|
|
#define SORT_POSITION_FRONT -1 //前面位置
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
|
|
//颜色定义
|
|
struct tagListItemColor
|
|
{
|
|
COLORREF rcTextColor; //字体颜色
|
|
COLORREF rcBackColor; //背景颜色
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
|
|
//列头控件
|
|
class MODULE_MANAGER_CLASS CListHeaderCtrl : public CHeaderCtrl
|
|
{
|
|
//函数定义
|
|
public:
|
|
//构造函数
|
|
CListHeaderCtrl();
|
|
//析构函数
|
|
virtual ~CListHeaderCtrl();
|
|
|
|
//消息函数
|
|
protected:
|
|
//重画消息
|
|
VOID OnPaint();
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
|
|
//列表控件
|
|
class MODULE_MANAGER_CLASS CListControl : public CListCtrl
|
|
{
|
|
//状态变量
|
|
protected:
|
|
bool m_bAscendSort; //升序标志
|
|
|
|
//组件变量
|
|
protected:
|
|
CListHeaderCtrl m_ListHeaderCtrl; //列头控件
|
|
|
|
//函数定义
|
|
public:
|
|
//构造函数
|
|
CListControl();
|
|
//析构函数
|
|
virtual ~CListControl();
|
|
|
|
//重载函数
|
|
public:
|
|
//控件绑定
|
|
virtual VOID PreSubclassWindow();
|
|
//绘画函数
|
|
virtual VOID DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
|
|
|
|
//重置函数
|
|
private:
|
|
//配置列表
|
|
virtual VOID InitListControl()=NULL;
|
|
//子项排序
|
|
virtual INT SortListItemData(LPARAM lParam1, LPARAM lParam2, WORD wColumnIndex)=NULL;
|
|
//获取颜色
|
|
virtual VOID GetListItemColor(LPARAM lParam, UINT uItemStatus, tagListItemColor & ListItemColor)=NULL;
|
|
|
|
//静态函数
|
|
protected:
|
|
//排列函数
|
|
static INT CALLBACK SortFunction(LPARAM lParam1, LPARAM lParam2, LPARAM lParamList);
|
|
|
|
//消息映射
|
|
protected:
|
|
//绘画背景
|
|
BOOL OnEraseBkgnd(CDC * pDC);
|
|
//点击列表
|
|
VOID OnColumnclick(NMHDR * pNMHDR, LRESULT * pResult);
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
|
|
#endif
|