コード例 #1
0
BOOL CPie::OnDragEnd(int nHitTest,CPointF point)
{
	REAL dx = m_pWnd->GetStartPos().x;
	REAL dy = m_pWnd->GetStartPos().y;

	switch (nHitTest)
	{
	case TopLeft:
		m_rc.left = point.x + dx;
		m_rc.top = point.y + dy;
		break;
	case Top:
		m_rc.top = point.y + dy;
		break;
	case TopRight:
		m_rc.right = point.x + dx;
		m_rc.top = point.y + dy;
		break; 
	case Right:
		m_rc.right = point.x + dx;
		break;
	case BottomRight:
		m_rc.right = point.x + dx;
		m_rc.bottom = point.y + dy;
		break;
	case Bottom:
		m_rc.bottom = point.y + dy;
		break;
	case BottomLeft:
		m_rc.left = point.x + dx;
		m_rc.bottom = point.y + dy;
		break;
	case Left:
		m_rc.left = point.x + dx;
		break;
	case Start:
		m_fStartAngel = EllipseHelper::Angel(m_rc,point + CPointF(dx,dy));
		break;
	case End:
		m_fEndAngel = EllipseHelper::Angel(m_rc,point + CPointF(dx,dy));
		break;
	case Body:
		m_rc.OffsetRect(point.x-m_pWnd->GetMarkPos().x,point.y-m_pWnd->GetMarkPos().y);
		break;
	default:
		ASSERT(FALSE);
	}
	return TRUE;
}
コード例 #2
0
inline CPointF CRoundRect::GetEllipseMarkPos(void) const
{
	return CPointF(m_rc.left+m_rc.Width()*m_fXEllipse/2.0f,m_rc.top+m_rc.Height()*m_fYEllipse/2.0f);
}