频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

API实现完美的图片出现效果

来源:yesky 作者: 出处:巧巧读书 2007-12-14 进入讨论组
上一页 1 2 3 4 5 6 7 下一页 
访问 http://www.qqread.com/vb/n882254100.html
  §2 BitBlt函数

  一、 BitBlt函数的功能

  BitBlt API函数的功能是将屏幕上任何一块拷贝到屏幕上其它任何一个地方。

  二、 声明BitBlt函数

  1. 运行Visual Basic4.0程序组中的API Text Viewer程序项。

  2. 在API Text Viewer中,单击File菜单下的Load Text File...命令。

  3. 在出现的Select a Text API File对话框中,选择Win32api.txt文件。

  4. 为了使以后拷贝Windows API函数更快,你可以将Win32api.txt文件转换成为一个数据库。如图,单击“是(Y)”。

  5. 在API Type下拉框中选择Declare。

  6. 在Available Items中选择BitBlt,如图,单击Add按纽,于是BitBlt便出现在Selected Items框中,单击Copy按纽。BitBlt函数变拷贝到剪贴板上。

  7. 关闭API Text Viewer,打开Visual Basic程序,使用Insert菜单下的Module命令新建一个Module1,使用Edit菜单下的Paste命令,将剪贴板上的BitBlt函数拷贝到Module1中。这样,在您的程序中,就可以使用BitBlt函数了。

  三、BitBlt函数中各参数简介

  Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long

  以上是BitBlt函数的声明格式,其中,各参数定义如下:

参数

描述

hDestDC

接收位图的设备描述表

X

目标矩形左上角的逻辑X坐标

Y

目标矩形左上角的逻辑Y坐标

nWidth

目标矩形的宽度

nHeight

目标矩形的高度

hSrcDC

源设备描述表

xSrc

源位图左上角的逻辑X坐标

ySrc

源位图左上角的逻辑Y坐标

dwRop拷贝模式

dwRop的各种可能值为:

&HCC0020

dest=source

&HEE0086

dest=source OR dest

&H8800C6

dest=source AND dest

&H660046

dest=source XOR dest

&H440328

dest=source AND (NOT dest)

&H330008

dest=not source

&H1100A6

dest=(NOT source)AND(NOT dest)

&HC000CA

dest=source AND pattern

&HBB0226

dest=(NOT source) OR dest

&HF00021

dest=pattern

&HFB0A09

dest=Dpsnoo

&H5A0049

dest=pattern XOR dest

&H550009

dest=NOT dest

&H42&

dest=BLACK

&HFF0062

dest=WHITE

  在本程序中使用的BitBlt函数均定义dwRop=HCC0020,如果你定义dwRop为其他值,会收到其他异想不到的效果。

§3 用BitBlt函数实现各种各样的图片出现效果

  实现髦滞计鱿中Ч幕驹硎牵荷柚昧礁鐾计騊icture1和Picture2,在Picture1中装入要显示的图片,(可以在窗体设计时就装好,也可以在程序运行过程中装入。)将Picture1中的图片以各种方法拷贝到Picture2中,从而实现各种各样的图片出现效果。

  先在Picture1中装入待显示的图片,并设置Picture1的属性为AutoRedraw=True,Visible=False, 设置Picture2的属性为AutoRedraw=False,Visible=True,设置Form的属性为ScaleMode=3。

  一、从上到下效果


  将Picture1从形式上分为很多小块

  如图所示,要将Picture1中的图片拷贝到Picture2中,首先将Picture1从形式上划分为很多小块a1、a2、a3、…,每块宽度为。

  然后利用BitBlt函数先将Picture1中的a1块拷贝到Picture2中的相同位置,等待片刻,再拷贝a2块、a3块、…直到。如果将取得足够小,则人眼看到 Picture2中的图片就是以从上到下的效果出现的。其程序如下:

Picture2.Cls

nHeight = 3‘小块的高度,即

Stripes = Picture1.Height / nHeight‘总共的小块数目n个

P2 = nHeight

P1 = Picture1.Width

For I = 0 To Picture1.Height Step nHeight

p3 = I

r% = BitBlt(Form1.Picture2.hDC, 0, p3, P1, P2, Form1.Picture1.hDC, 0, p3, &HCC0020)

For j = 1 To 8000 注释:‘等待片刻,图片从上到下出现的时间可以由此调节

Next

Next


  明白了以上制作原理以后,图片从下到上、从做到右、从右到左出现的效果也就可以实现了。进入讨论组讨论。
上一页 1 2 3 4 5 6 7 下一页 
收藏此文】【 】【打印】【关闭
较早的文章:感悟VB细水长流话API(四-2)

较新的文章:通讯录用VB做
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章