编写一个应用程序,改程序运行后在用户区绘制一个圆形,每单击鼠标左键一次则圆的颜色变化一次。
设计思路:既然要变色,肯定离不开变色的取值,所以肯定要在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
该博客介绍了一个应用程序的实现,该程序在用户区域绘制一个圆形,并在每次点击鼠标左键时改变圆的颜色。通过在View类中定义红色、绿色和蓝色变量以及存储圆的尺寸,当鼠标左键按下时更新颜色值并重新绘制。在OnLButtonDown事件中增加颜色变化逻辑,并在OnDraw函数中使用CDC进行绘图操作。

2084

被折叠的 条评论
为什么被折叠?



