-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathLabel.h
116 lines (100 loc) · 3.51 KB
/
Label.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#if !defined(AFX_LABEL_H__A4EABEC5_2E8C_11D1_B79F_00805F9ECE10__INCLUDED_)
#define AFX_LABEL_H__A4EABEC5_2E8C_11D1_B79F_00805F9ECE10__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
// Label.h : header file
//
#define NM_LINKCLICK WM_APP + 0x200
/////////////////////////////////////////////////////////////////////////////
// CLabel window
class CLabel : public CStatic
{
// Construction
public:
static enum LinkStyle { LinkNone, HyperLink, MailLink };
static enum FlashType {None, Text, Background };
static enum Type3D { Raised, Sunken};
static enum BackFillMode { Normal, Gradient };
CLabel();
virtual CLabel& SetBkColor(COLORREF crBkgnd, COLORREF crBkgndHigh = 0, BackFillMode mode = Normal);
virtual CLabel& SetTextColor(COLORREF crText);
virtual CLabel& SetText(const CString& strText);
virtual CLabel& SetFontBold(BOOL bBold);
virtual CLabel& SetFontName(const CString& strFont, BYTE byCharSet = ANSI_CHARSET);
virtual CLabel& SetFontUnderline(BOOL bSet);
virtual CLabel& SetFontItalic(BOOL bSet);
virtual CLabel& SetFontSize(int nSize);
virtual CLabel& SetSunken(BOOL bSet);
virtual CLabel& SetBorder(BOOL bSet);
virtual CLabel& SetTransparent(BOOL bSet);
virtual CLabel& FlashText(BOOL bActivate);
virtual CLabel& FlashBackground(BOOL bActivate);
virtual CLabel& SetLink(BOOL bLink,BOOL bNotifyParent);
virtual CLabel& SetLinkCursor(HCURSOR hCursor);
virtual CLabel& SetFont3D(BOOL bSet,Type3D type=Raised);
virtual CLabel& SetRotationAngle(UINT nAngle,BOOL bRotation);
virtual CLabel& SetText3DHiliteColor(COLORREF cr3DHiliteColor);
virtual CLabel& SetFont(LOGFONT lf);
virtual CLabel& SetMailLink(BOOL bEnable, BOOL bNotifyParent);
virtual CLabel& SetHyperLink(const CString& sLink);
// Attributes
public:
protected:
void UpdateSurface();
void ReconstructFont();
void DrawGradientFill(CDC* pDC, CRect* pRect, COLORREF crStart, COLORREF crEnd, int nSegments);
COLORREF m_crText;
COLORREF m_cr3DHiliteColor;
HBRUSH m_hwndBrush;
HBRUSH m_hBackBrush;
LOGFONT m_lf;
CFont m_font;
BOOL m_bState;
BOOL m_bTimer;
LinkStyle m_Link;
BOOL m_bTransparent;
BOOL m_bFont3d;
BOOL m_bToolTips;
BOOL m_bNotifyParent;
BOOL m_bRotation;
FlashType m_Type;
HCURSOR m_hCursor;
Type3D m_3dType;
BackFillMode m_fillmode;
COLORREF m_crHiColor;
COLORREF m_crLoColor;
CString m_sLink;
CDC* m_pMemDC;
//CDC* pDCMem;
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CLabel)
protected:
virtual void PreSubclassWindow();
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CLabel();
// Generated message map functions
protected:
//{{AFX_MSG(CLabel)
afx_msg void OnTimer(UINT nIDEvent);
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
afx_msg void OnSysColorChange();
afx_msg void OnPaint();
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
public:
//tc:这就是新添加的ON_WM_CTLCOLOR_REFLECT()消息的响应函数
afx_msg HBRUSH CtlColor(CDC* /*pDC*/, UINT /*nCtlColor*/);
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_LABEL_H__A4EABEC5_2E8C_11D1_B79F_00805F9ECE10__INCLUDED_)