Exemplo n.º 1
0
int CMcdCtrl::Mcd(int a, int b)
{
	if(b==0){
		return a;
	}
	return Mcd(b,a%b);
}
Exemplo n.º 2
0
void CMcdCtrl::OnDraw(
			CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
	// TODO: Replace the following code with your own drawing code.

	/*
	pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
	pdc->Ellipse(rcBounds);
	*/
	
	//设置控件的背景颜色
	CBrush brush(RGB(255,255,0));
	pdc->FillRect(&rcBounds,&brush);

	//设置圆的背景色黑色
	CBrush brush2(RGB(0,200,0));
	CBrush* pOldBursh=pdc->SelectObject(&brush2);

	//设置圆心位置
	POINT p1 = {30,120};
	POINT p2 = {200,p1.y};

	POINT p3 = { (p1.x+p2.x)/2 , m_direction?(p1.y+60):p1.y-60 };

	// 开始画圆
	pdc->Ellipse(p1.x-15,p1.y-15,p1.x+15,p1.y+15);
	pdc->Ellipse(p2.x-15,p2.y-15,p2.x+15,p2.y+15);
	pdc->Ellipse(p3.x-15,p3.y-15,p3.x+15,p3.y+15);
	
	//划线
	pdc->MoveTo(p1);
	pdc->LineTo(p3);
	pdc->LineTo(p2);

	//写入数字
	pdc->SetBkMode(TRANSPARENT);
	pdc->SetTextAlign(TA_CENTER);
	pdc->SetTextColor(RGB(255,255,255));

	CString strInfo;
	strInfo.Format("%d",m_a);
	pdc->TextOut(p1.x,p1.y-10,strInfo);
	strInfo.Format("%d",m_b);
	pdc->TextOut(p2.x,p2.y-10,strInfo);

	strInfo.Format("%d",Mcd(m_a,m_b));
	pdc->TextOut(p3.x,p3.y-10,strInfo);




}
Exemplo n.º 3
0
void CMcdCtrl::OnDraw(
			CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
	//1 设置控件的背景色
	CBrush brush(RGB(255,255,0));
	pdc->FillRect(&rcBounds,&brush);
	//2 设置圆的背景色
	CBrush brush2(RGB(0,0,0));
	CBrush *pOldBrush=pdc->SelectObject(&brush2);
    //3 设置圆心位置
	POINT p1={30,120};
	POINT p2={190,p1.y};
	POINT p3={(p1.x+p2.x)/2,
		m_direction?p1.y-60:p1.y+60};
	int r=15;//半径
	//4 画圆
	pdc->Ellipse(p1.x-r,p1.y-r,p1.x+r,p1.y+r);
	pdc->Ellipse(p2.x-r,p2.y-r,p2.x+r,p2.y+r);
	pdc->Ellipse(p3.x-r,p3.y-r,p3.x+r,p3.y+r);
	//5 画圆的连接线
	pdc->MoveTo(p1);
	pdc->LineTo(p3);
	pdc->LineTo(p2);
	//6 设置文本的对齐方式,颜色和背景颜色
	pdc->SetTextAlign(TA_CENTER);
	pdc->SetTextColor(RGB(255,255,255));
	pdc->SetBkMode(TRANSPARENT);
	//7 输出数值
	CString strInfo;
	strInfo.Format("%d",m_a);
	pdc->TextOut(p1.x,p1.y-9,strInfo);
	strInfo.Format("%d",m_b);
	pdc->TextOut(p2.x,p2.y-9,strInfo);
    strInfo.Format("%d",Mcd(m_a,m_b));
	pdc->TextOut(p3.x,p3.y-9,strInfo);


}