-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCustomDrawGroupBox.cpp
More file actions
63 lines (49 loc) · 1.23 KB
/
Copy pathCustomDrawGroupBox.cpp
File metadata and controls
63 lines (49 loc) · 1.23 KB
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
// CustomDrawGroupBox.cpp : ʵÏÖÎļþ
//
#include "pch.h"
#include "CustomDrawGroupBox.h"
// CCustomDrawGroupBox
IMPLEMENT_DYNAMIC(CCustomDrawGroupBox, CButton)
CCustomDrawGroupBox::CCustomDrawGroupBox()
{
m_bkColor = RGB(255,255,255);
m_borderColor = RGB(255,0,255);
}
CCustomDrawGroupBox::~CCustomDrawGroupBox()
{
}
BEGIN_MESSAGE_MAP(CCustomDrawGroupBox, CButton)
ON_WM_PAINT()
END_MESSAGE_MAP()
// CCustomDrawGroupBox ÏûÏ¢´¦Àí³ÌÐò
void CCustomDrawGroupBox::OnPaint()
{
CPaintDC dc(this);
CRect rcClient;
GetClientRect(&rcClient);
if(dc)
{
CBrush bkBrush;
CPen borderPen(PS_JOIN_ROUND,1,m_borderColor);
CPoint pt(10,10);
bkBrush.CreateSolidBrush(m_bkColor);
CBrush* pOldBrush = dc.SelectObject(&bkBrush);
CPen* pOldPen = dc.SelectObject(&borderPen);
CPoint p1 = rcClient.TopLeft(), p2 = rcClient.BottomRight();
dc.Ellipse(p1.x, p1.y, p1.x + 13, p1.y + 13);
dc.Ellipse(&rcClient);
dc.SelectObject(pOldBrush);
dc.SelectObject(pOldPen);
dc.SetBkMode(TRANSPARENT);
}
}
void CCustomDrawGroupBox::PreSubclassWindow()
{
CButton::PreSubclassWindow();
//modified the style to avoid text overlap when press tab
ModifyStyle(0, BS_ICON);
}
void CCustomDrawGroupBox::SetBkColor(COLORREF color)
{
m_bkColor = color;
}