Files
wnmj/Servers/服务器组件/模块管理/ListControl.h
2026-02-13 14:34:15 +08:00

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