网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
VC中用GDI函数实规高速平滑动画
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
sp; //内存中的DC指针
      dcMem.CreateCompatibleDC(pDC);    
      dcMem.SelectObject(this);       
       CBrush  *OldBrush , blbrush(color);
       dcMem.SetBkMode( TRANSPARENT );
       dcMem.SetBkColor(color);
       OldBrush = dcMem.SelectObject( &blbrush );
       dcMem.Rectangle( x1 , y1 , x2 , y2 );       
       dcMem.SelectObject(OldBrush);
       dcMem.DeleteDC();
       m_pWnd->ReleaseDC(pDC);
}

参数x1,y1,x2,y2指定了矩形区的尺寸,color指定了填充色。其实现方法与4中所述一样,在此不必多介绍。
6、添加了绘图函数,下面再介绍如何使用CMemBitmap类,来实现动画效果:
首先,我们在视图类(也可以是其它窗口类)中声明一个CMemBitmap成员变量m_MemBitmap,代码如下:

private:
    CMemBitmap m_MemBitmap;

然后,我们重载Cview类函数OnInitialUpdate(),以便视图初始化结束后初始化位图对象,并且视图指针传递过去,其实现代码如下:

void CTestBitmapView::OnInitialUpdate()

{
    CView::OnInitialUpdate();
    // TODO: Add your specialized code here and/or call the base class
    m_MemBitmap.init(this);
    SetTimer(1,100,NULL);    
}  

在函数最后,启动了一个定时器, 我们将用定时来实现动画功能。

接着,我们重载定时器消息函数OnTimer实现动画功能。其实现代码如下:

void CTestBitmapView::OnTimer(UINT nIDEvent)

{
    int        x , y;//文本显示的位置
    CRect    rect;//客户区域
    CDC*    pDC = GetDC();//获取视图的DC
    CDC    dcComp;
    //得到客户区尺寸
    GetClientRect(&rect);
    //随机获得要显示文本的位置
    srand( (unsigned)time( NULL ) );
    //控制文本显示的位置位于客户区以内
    x = rand()%rect.Width()/2;
    y = rand()%rect.Height();  
    //在内存中显示文本   
    m_MemBitmap.Clear(rect.left,rect.top,rect.right,rect.bottom,RGB(0,0,0));
    m_MemBitmap.TextOut(10,10,500,"固定的文本",RGB(255,255,255));
    m_MemBitmap.TextOut(x,y,400,"GDI函数实现高速动画演示",RGB(255,255,0));
    //内存设备环境将位图对象选入
    dcComp.CreateCompatibleDC(pDC);
    dcComp.SelectObject(&m_MemBitmap);
    //用位传输函数显示出来
 
  • 下一篇资讯: 关闭计算机就这几招
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号