/** \brief Test to see if we hit this object with a mouse click * \param pos Click position * \returns true it hit */ bool CPolyDrawable::HitTest(Gdiplus::Point pos) { // Transform the points vector<Point> points; for (auto point : mPoints) { points.push_back(RotatePoint(point, mPlacedR) + mPlacedPosition); } GraphicsPath path; path.AddPolygon(&points[0], (int)points.size()); return path.IsVisible(pos) ? true : false; }
void CLTriangle::SetRegion() { PointF* pPt = m_ptary.GetData(); Pen penDraw(Color(255, 0, 255, 0)); penDraw.SetDashStyle(m_nDashStyle); penDraw.SetWidth((float)m_nWidth); GraphicsPath path; path.AddPolygon(pPt,m_nPtCount); path.Widen(&penDraw); path.Outline(); m_Region.MakeEmpty(); m_Region.Union(&path); }
void CTriangle::SetRegion() { PointF* pPt = m_ptary.GetData(); int nWidth = m_nWidth; if(m_nWidth < 6) { nWidth = 6; } Pen greenPen(Color(255, 0, 255, 0), (float)nWidth); GraphicsPath path; path.AddPolygon(pPt,m_nPtCount); path.Widen(&greenPen); path.Outline(); m_Region.MakeEmpty(); m_Region.Union(&path); }