加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

用MFC做的动态图像 动态带笑脸花朵(xk)

(2012-10-04 09:25:21)
标签:

mfc

动态

花朵

it

分类: 技术博文

主要代码

在void CSecMFCView::OnDraw(CDC* pDC)函数中的代码如下:

void CSecMFCView::OnDraw(CDC* pDC)
{
        CSecMFCDoc* pDoc = GetDocument();
        ASSERT_VALID(pDoc);
        // TODO: add draw code for native data here

        int x,y,i;
        CRect rect;
        GetClientRect(&rect);
        x=rect.Width()/2;
        y=rect.Height()/2;       
       
        CPen newpen,*poldpen;                //绿弧
        newpen.CreatePen(PS_SOLID,20,RGB(0,255,0));
        poldpen=pDC->SelectObject(&newpen);
        pDC->Arc(x-500,y+100,x+500,y+300,x-500,y+200,x+500,y+200);
        pDC->Arc(x-400,y+70,x+400,y+270,x-200,y+170,x+200,y+170);

        for(i=0;i<120;i++)                //花瓣
        {
                CPen newpen,*poldpen;
                newpen.CreatePen(PS_SOLID,10,RGB(255-i,0,0));
                poldpen=pDC->SelectObject(&newpen);
                pDC->Ellipse(x-125+i,y-280+i,x+125-i,y-30-i);        //上
                pDC->Ellipse(x-255+i,y-170+i,x-5-i,y+80-i);                //左上
                pDC->Ellipse(x-200+i,y-50+i,x+50-i,y+200-i);        //左下
                pDC->Ellipse(x+5+i,y-170+i,x+255-i,y+80-i);                //右上
                pDC->Ellipse(x-45+i,y-50+i,x+205-i,y+200-i);        //右下
                Sleep(3);
        }
        for(i=0;i<170;i++)                //退圈
        {
                CPen newpen,*poldpen;
                newpen.CreatePen(PS_SOLID,10,RGB(0+i,0,0));
                poldpen=pDC->SelectObject(&newpen);
                pDC->Ellipse(x-i,y-25-i,x+i,y-25+i);
                Sleep(3);
        }
        for(i=0;i<170;i++)                //脸
        {
                CPen newpen,*poldpen;
                newpen.CreatePen(PS_SOLID,10,RGB(255,255-i,0));
                poldpen=pDC->SelectObject(&newpen);
                pDC->Ellipse(x-170+i,y-170-25+i,x+170-i,y-25+170-i);
                Sleep(5);
        }
        for(i=0;i<10;i++)                //眼睛
        {
                CPen newpen,*poldpen;
                newpen.CreatePen(PS_SOLID,10,RGB(0,0,0));
                poldpen=pDC->SelectObject(&newpen);
                pDC->Ellipse(x-70+i,y-70-25+i,x-50-i,y-50-25-i);        //上点
                Sleep(3);
                pDC->Ellipse(x+70-i,y-70-25+i,x+50+i,y-50-25-i);                //左上点
                Sleep(3);
        }
        for(i=0;i<100;i++)                //嘴
        {
                CPen newpen,*poldpen;
                newpen.CreatePen(PS_SOLID,10,RGB(0,0,100-i));
                poldpen=pDC->SelectObject(&newpen);
                pDC->Arc(x-100,y-50,x+100,y+100,x-200,y+20,x+200,y+20);
                Sleep(3);
        }
                //出现字第一行字
        CFont newfont,*poldfont;
        newfont.CreateFont(100,100,0,0,FW_THIN,true,false,false,CHINESEBIG5_CHARSET,OUT_CHARACTER_PRECIS,
                                                CLIP_CHARACTER_PRECIS,DEFAULT_QUALITY,FF_MODERN,"粗体");
        poldfont=pDC->SelectObject(&newfont);
        pDC->SetBkMode(TRANSPARENT);
        pDC->SetTextColor(RGB(0,0,255));
        pDC->TextOut(x-600,y+180,"Thank you!!!");
                //出现第二行字
        pDC->SelectObject(poldfont);
        newfont.DeleteObject();
        newfont.CreateFont(30,30,0,0,FW_THIN,true,false,false,CHINESEBIG5_CHARSET,OUT_CHARACTER_PRECIS,
                                                CLIP_CHARACTER_PRECIS,DEFAULT_QUALITY,FF_MODERN,"粗体");
        poldfont=pDC->SelectObject(&newfont);
        pDC->SetTextColor(RGB(255,0,0));
        pDC->TextOut(x-180,y+280,"(made by xk)");
}

效果图:

静态:

http://s3/middle/b11f59aftcb31ae6a1d82&690动态带笑脸花朵(xk)" TITLE="用MFC做的动态图像 动态带笑脸花朵(xk)" />

动态:

http://s8/middle/b11f59aftcb31b0dcd9b7&690动态带笑脸花朵(xk)" TITLE="用MFC做的动态图像 动态带笑脸花朵(xk)" />

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有