#pragma once
|
#include <afxcmn.h>
|
#include <map>
|
|
class CApredTreeCtrl2 :
|
public CTreeCtrl
|
{
|
public:
|
typedef struct tagBADGE
|
{
|
HTREEITEM hTreeItem;
|
COLORREF badgeBackground;
|
COLORREF badgeForeground;
|
int type; /* 0: ÎÞ,²»ÏÔʾ*/
|
int number;
|
} BADGE;
|
|
|
DECLARE_DYNAMIC(CApredTreeCtrl2)
|
|
public:
|
CApredTreeCtrl2();
|
virtual ~CApredTreeCtrl2();
|
|
|
public:
|
virtual COLORREF SetBkColor(COLORREF crColor);
|
void SetItemBadge(HTREEITEM hItem, COLORREF badgeBackground, COLORREF badgeForeground);
|
void ShowItemBadgeNumber(HTREEITEM hItem, int number);
|
void ShowItemBadgeDotMode(HTREEITEM hItem);
|
void HideItemBadge(HTREEITEM hItem);
|
|
private:
|
HBRUSH GetItemBkBrush(HTREEITEM hItem);
|
HBRUSH GetItemBtnBrush(HTREEITEM hItem);
|
HPEN GetItemBtnPen(HTREEITEM hItem);
|
void DrawItemButton(HTREEITEM hItem, HDC hDC, CRect* pRect);
|
|
|
private:
|
std::map<HTREEITEM, BADGE> m_badges;
|
std::map<HTREEITEM, int> m_items;
|
HBRUSH m_hBrushItem[3];
|
COLORREF m_crItemBk[3];
|
COLORREF m_crItemBtn[3];
|
|
public:
|
DECLARE_MESSAGE_MAP()
|
afx_msg void OnNMCustomdraw(NMHDR* pNMHDR, LRESULT* pResult);
|
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
|
virtual void PreSubclassWindow();
|
};
|