// triangle.cpp : 实现文件 // #include "stdafx.h" #include "trianglebtn.h" #include "triangle.h" // triangle IMPLEMENT_DYNAMIC(triangle, CButton) triangle::triangle() { } triangle::~triangle() { } BEGIN_MESSAGE_MAP(triangle, CButton) ON_CONTROL_REFLECT(BN_CLICKED, &triangle::OnBnClicked) END_MESSAGE_MAP() // triangle 消息处理程序 void triangle::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) { CDC*pDC=CDC::FromHandle(lpDrawItemStruct->hDC); CRect rect=lpDrawItemStruct->rcItem; CPoint point[3]; point[0].x=rect.right/2;point[0].y=5; point[1].x=0;point[1].y=rect.bottom; point[2].x=rect.right;point[2].y=rect.bottom; CString str("caption"); CSize size=pDC->GetTextExtent(str); pDC->TextOutA(rect.right/2-size.cx/2,rect.bottom-size.cy,str); CRgn rgn; rgn.CreatePolygonRgn(point,3,ALTERNATE); SetWindowRgn(rgn, 1); CPen HighlightPen(PS_SOLID, 5,RGB(255,0,0) /*::GetSysColor(COLOR_3DHIGHLIGHT)*/); pDC->SelectObject(HighlightPen); pDC->MoveTo(point[0]); pDC->LineTo(point[1]); pDC->MoveTo(point[0]); pDC->LineTo(point[2]); pDC->MoveTo(point[2]); pDC->LineTo(point[1]); // TODO: 添加您的代码以绘制指定项 } void triangle::OnBnClicked() { AfxMessageBox("弹出"); // TODO: 在此添加控件通知处理程序代码 } void triangle::PreSubclassWindow() { // TODO: 在此添加专用代码和/或调用基类 CButton::PreSubclassWindow(); ModifyStyle(0,BS_OWNERDRAW); }