MFC实例:图形移动

该博客介绍了如何使用MFC实现一个交互式的图形移动应用,通过点击鼠标左键和右键创建不同移动方向的随机颜色、大小的球。同时,实现了图形的保存和读取功能。在代码实现中,强调了关键知识点,如在Serialize函数中处理数据存储,以及在OnDraw函数中更新移动矩形的注意事项。
摘要由CSDN通过智能技术生成

案例7: 实际应用
实现点击产生随机大小、随机颜色的球,若是左键按下产生的小球,按下过程中小球上移,若是右键按下产生的小球,按下过程中小球下移,能够保存、读取。
运行截图:
这里写图片描述
插入代码如下:
定义要存储的变量:(记得初始化)

class CBubbleUpDoc : public CDocument
{
// Attributes
public:
CRect BubbleRect[MAX];
int BubbleColor[MAX];
int m_Bubble;
...

修改Serialize函数实现数据存储:

void CBubbleUpDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
    // TODO: add storing code here
    ar<<m_Bubble;
    for (int i=0;i<m_Bubble;i++)
    ar << BubbleRect[i];
    for (i=0;i<m_Bubble;i++)
    ar << BubbleColor[i];
}
else
{
    // TODO: add loading code here
    ar>>m_Bubble;
    for (int i=0;i<m_Bubble;i++)
    ar >> BubbleRect[i];
    for (i=0;i<m_Bubble;i++)
    ar >> BubbleColor[i];
    }
}

修改OnDraw函数:

void CBubbleUpView::OnDraw(CDC* pDC)
{
    CBubbleUpDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    CBrush BrushNew[MAX],*BrushOld;
    CPen PenNew,*PenOld;

    PenNew.CreatePen(0,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值