Files
wnmj/Servers/服务器组件/模块管理/ListControl.h

104 lines
2.2 KiB
C
Raw Normal View History

2026-02-13 14:34:15 +08:00
#ifndef LIST_CONTROL_HEAD_FILE
#define LIST_CONTROL_HEAD_FILE
#pragma once
#include "ModuleManagerHead.h"
//////////////////////////////////////////////////////////////////////////////////
//<2F><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
#define CR_NORMAL_TK RGB(255,255,255) //<2F>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD>
#define CR_NORMAL_BK RGB(255,255,255) //<2F>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
#define SORT_POSITION_AFTER 1 //<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
#define SORT_POSITION_FRONT -1 //ǰ<><C7B0>λ<EFBFBD><CEBB>
//////////////////////////////////////////////////////////////////////////////////
//<2F><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
struct tagListItemColor
{
COLORREF rcTextColor; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
COLORREF rcBackColor; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
};
//////////////////////////////////////////////////////////////////////////////////
//<2F><>ͷ<EFBFBD>ؼ<EFBFBD>
class MODULE_MANAGER_CLASS CListHeaderCtrl : public CHeaderCtrl
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public:
//<2F><><EFBFBD><EFBFBD><ECBAAF>
CListHeaderCtrl();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual ~CListHeaderCtrl();
//<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
protected:
//<2F>ػ<EFBFBD><D8BB><EFBFBD>Ϣ
VOID OnPaint();
DECLARE_MESSAGE_MAP()
};
//////////////////////////////////////////////////////////////////////////////////
//<2F>б<EFBFBD><D0B1>ؼ<EFBFBD>
class MODULE_MANAGER_CLASS CListControl : public CListCtrl
{
//״̬<D7B4><CCAC><EFBFBD><EFBFBD>
protected:
bool m_bAscendSort; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
protected:
CListHeaderCtrl m_ListHeaderCtrl; //<2F><>ͷ<EFBFBD>ؼ<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public:
//<2F><><EFBFBD><EFBFBD><ECBAAF>
CListControl();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual ~CListControl();
//<2F><><EFBFBD>غ<EFBFBD><D8BA><EFBFBD>
public:
//<2F>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD>
virtual VOID PreSubclassWindow();
//<2F><EFBFBD><E6BBAD><EFBFBD><EFBFBD>
virtual VOID DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
//<2F><><EFBFBD>ú<EFBFBD><C3BA><EFBFBD>
private:
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
virtual VOID InitListControl()=NULL;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual INT SortListItemData(LPARAM lParam1, LPARAM lParam2, WORD wColumnIndex)=NULL;
//<2F><>ȡ<EFBFBD><C8A1>ɫ
virtual VOID GetListItemColor(LPARAM lParam, UINT uItemStatus, tagListItemColor & ListItemColor)=NULL;
//<2F><>̬<EFBFBD><CCAC><EFBFBD><EFBFBD>
protected:
//<2F><><EFBFBD>к<EFBFBD><D0BA><EFBFBD>
static INT CALLBACK SortFunction(LPARAM lParam1, LPARAM lParam2, LPARAM lParamList);
//<2F><>Ϣӳ<CFA2><D3B3>
protected:
//<2F><EFBFBD><E6BBAD><EFBFBD><EFBFBD>
BOOL OnEraseBkgnd(CDC * pDC);
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
VOID OnColumnclick(NMHDR * pNMHDR, LRESULT * pResult);
DECLARE_MESSAGE_MAP()
};
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
#endif