编写一个应用程序,改程序运行后在用户区绘制一个圆形,每单击鼠标左键一次则圆的颜色变化一次

来源:互联网 发布:免费摄像头监控软件 编辑:程序博客网 时间:2024/04/19 11:53

编写一个应用程序,改程序运行后在用户区绘制一个圆形,每单击鼠标左键一次则圆的颜色变化一次。

设计思路:既然要变色,肯定离不开变色的取值,所以肯定要在View类里定义red , green  , blue三个变量,再定义一个m_brectRec来存储圆形的尺寸

代码如下:

1.在View类里定义

             public:

                            int red , green , blue;

                             CRect  m_brectRec;

 

2.在View的构造函数中对成员初始化

CMy4_7View::CMy4_7View(): m_brectRec( 100 , 100 , 400 , 400 )
{
 // TODO: add construction code here
 red = 0;
 green = 0;
 blue = 0;
}

 

3.在View类的OnLButtonDown添加代码:

void CMy4_7View::OnLButtonDown(UINT nFlags, CPoint point)
{
 // TODO: Add your message handler code here and/or call default
 red += 50%300;                                            //这三个颜色怎么变自己随便定
 green += 20%300;
 blue += 10%300;
 Invalidate();                                             //这一步最关键,这是对客户区的重新绘制
 CView::OnLButtonDown(nFlags, point);
}

 

4.在View类的OnDraw函数添加代码:
void CMy4_7View::OnDraw(CDC* pDC)
{
 CMy4_7Doc* pDoc = GetDocument();
 ASSERT_VALID(pDoc);
 // TODO: add draw code for native data here
 int clr = RGB( red , green , blue );
 CBrush newBrush( clr );  
 

 CBrush *oldBrush = pDC->SelectObject( &newBrush );
 pDC->Ellipse( m_brectRec );
 pDC->SelectObject( oldBrush );
}

然后就可以运行了0.0