二、关键逻辑

	Gdiplus::Pen			m_pen;
Gdiplus::Pen			m_penSolid;
	REAL dashVals[4] = {
1, // 短划长为2
3, // 间隔为2
1, // 短划长为15
3 }; // 间隔为2
m_pen.SetDashPattern(dashVals, 4);

m_penSolid.SetDashStyle(DashStyleDot);
	CPaintDC dc(this); // 用于绘制的设备上下文

Gdiplus::Graphics graphics(dc.m_hDC);
graphics.SetSmoothingMode(Gdiplus::SmoothingModeHighQuality);

const int nPointX = 100;
const int nPointY = 90;
const int nWidth = 250;
const int nHeight = 120;
Rect rcTop(nPointX, nPointY, nWidth, nHeight);
Rect rcBottom(nPointX, nPointY + 10, nWidth, nHeight);
graphics.DrawArc(&m_pen, rcTop, 180, 180);
graphics.DrawArc(&m_pen, rcBottom, 0, 180);

const int nArrowWidth = 10;
const int nArrowHeight = 7;

Point ptDay(nPointX + nWidth / 2 + nArrowWidth / 2, rcTop.GetTop());
Point ptDayX1(ptDay.X - nArrowWidth, ptDay.Y - nArrowHeight);
Point ptDayX2(ptDay.X - nArrowWidth, ptDay.Y + nArrowHeight);
graphics.DrawLine(&m_penSolid, ptDayX1, ptDay);
graphics.DrawLine(&m_penSolid, ptDayX2, ptDay);

Point ptNight(nPointX + nWidth / 2 + nArrowWidth / 2, rcBottom.GetBottom());
Point ptNightX1(ptNight.X + nArrowWidth, ptNight.Y - nArrowHeight);
Point ptNightX2(ptNight.X + nArrowWidth, ptNight.Y + nArrowHeight);
graphics.DrawLine(&m_penSolid, ptNightX1, ptNight);
graphics.DrawLine(&m_penSolid, ptNightX2, ptNight);

08-04

03-11 1万+
07-30 1936
06-04 2万+
02-13 126
08-24 9278
10-26 122
04-02 534