当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:55:00  来源:本站整理

<b>用CB实现图象的特技显示</b>[VC/C++编程]

赞助商链接



  本文“<b>用CB实现图象的特技显示</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

在网页、软件和游戏中,我们常常可以看到图象的各种特技显示,如中央散布、百页窗帘、右下推出等,这种动感图象显示,常常给人一种赏心好看的感受,给我们的利用程序增添了一些美感.在C++ Builder中,我们可以很简单地实现这些功效.下面以一个具体的例子,介绍实现中央散布和百页窗帘两种显示本领,并阐明在C++ Builder中处理图象的基本办法.

在C++ Builder中新建一个工程,然后在窗体上增添一个Image图象控件,把它的Picture属性设置为一幅bmp图象,疗养Image控件尺寸与图象的尺寸大小相同.再在窗体上增添两个Button控件,把Button1的Caption属性设置为“中央散布”、Button2的Caption属性设置为“百页窗帘”.

1. 关于“中央散布”的实现,我们操纵一定的算法,通过一定的循环次数,每次显示图象的一部份,从图象的中央位置开始显示,直到显示出图象的整体.

在Button1的OnClick事件中加入以下代码:

void _fastcall TForm1::Button1Click(TObject *Sender)
{
int i,left,top,width,height;
left = Image1->Left;
top = Image1->Top;
width = Image1->Width;
height = Image1->Height;
for (i = 0; i <= width; i++){
//通过图象的坐标选定图象的一部份
Image1->Left = left + (width - i)/2;
Image1->Top = top + height/2 - i*height/width/2;
Image1->Width = i;
Image1->Height = i*height/width;
Image1->Refresh();
}
}

2.关于“百页窗帘”,我们可操纵画布(Canvas)供应的矩形拷贝(CopyRect)办法在差别画布之间举行图象复制来实现,该办法声明以下:

void _fastcall CopyRect(const Windows::TRect &&Dest, TCanvas?*Canvas, const Windows::TRect &&Source);

把参数Canvas指定的源画布矩形区域Source复制到目标画布Dest的矩形区域.操纵这种办法,再通过一定的算法,便可实现“百页窗帘”的特技显示.

在Button2的OnClick事件中加入以下代码:

void _fastcall TForm1::Button2Click(TObject *Sender)
{
int inum,icount,i,j;
Graphics::TBitmap *pBitmap = new Graphics::TBitmap();
pBitmap->Height = Image1->Height;
pBitmap->Width = Image1->Width;
inum =16; //这是百页窗的叶数
icount = pBitmap->Height /inum;
for (i = 1; i < icount; i++)
for (j = 0; j <= inum; j++){
pBitmap->Canvas->CopyRect(Rect(0,icount*j + i - 1, pBitmap->Width,icount*j + i),Image1->Canvas, Rect(0, icount*j + i - 1,pBitmap->Width, icount*j + i));
Form1->Canvas->Draw(Image1->Left,Image1->Top,pBitmap);
}
delete pBitmap;
}

按F9运行以上程序,便可得到所需求的“百页窗帘”效果.

Image图象控件还供应了别的一些很有效的属性和办法,大家可以充分操纵C++ Builder的帮忙,掌握了这些属性和办法,再操纵一些程序算法,便可以随心所欲地写出各种图象特技显示的程序.在我们的利用程序开辟中,便可以加入这些图象特技显示,为我们的利用程序增添一些光彩.


  以上是“<b>用CB实现图象的特技显示</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .