MFC的画椭圆的一些问题
Q1:为什么当窗口显示,画椭圆会执行2次?
Q2:为什么在画椭圆时无法按其他按钮,比如最大化?
以下是代码(有圆1在窗口中间,然后每隔0.5秒在圆1的圆周上隔10度画圆)
CPoint center;//中心圆圆心
double pie=3.141;
double cont,r1=30,r2=50;
void CSSBView::OnDraw(CDC* /*pDC*/)
{
CSSBDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
cont=0;
CClientDC dc(this);
CRect rect;
GetWindowRect(&rect);
int w=rect.Width()/2; // device context for painting
int h=rect.Height()/2;
double rx;
double ry;
center.SetPoint(w,h);
while(cont<360){
CBrush *brush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
CBrush *oldbrush=dc.SelectObject(brush);
double coner=(cont/180.0)*pie;
CPoint c2,c3;
rx=double(center.x)+r1*cos(coner);
ry=double(center.y)+r1*sin(coner);
c2.SetPoint (rx-r2,ry-r2);
c3.SetPoint (rx+r2,ry+r2);
Sleep(500);
dc.Ellipse(CRect(c2,c3));
cont=cont+10;
}
}