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

该博客介绍了一个应用程序的实现,该程序在用户区域绘制一个圆形,并在每次点击鼠标左键时改变圆的颜色。通过在View类中定义红色、绿色和蓝色变量以及存储圆的尺寸,当鼠标左键按下时更新颜色值并重新绘制。在OnLButtonDown事件中增加颜色变化逻辑,并在OnDraw函数中使用CDC进行绘图操作。

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

设计思路:既然要变色,肯定离不开变色的取值,所以肯定要在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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值