六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

用VB完成特殊圖形效果

[摘要]引言 在PowerPoint這樣的軟件中,各種各樣的圖形特效層出不窮,如百葉窗式、飛入式、關門式、棋盤式等等,在VB中也是可以實現這樣的效果的,而且十分簡單,其方法是調用Windows的API函數BitBlt。 BitBlt函數簡介 BitBlt函數在API函數群中是個很重要的角色,尤其在圖像處理...
引言

在PowerPoint這樣的軟件中,各種各樣的圖形特效層出不窮,如百葉窗式、飛入式、關門式、棋盤式等等,在VB中也是可以實現這樣的效果的,而且十分簡單,其方法是調用Windows的API函數BitBlt。

BitBlt函數簡介

BitBlt函數在API函數群中是個很重要的角色,尤其在圖像處理方面,更是不可或缺。其原意是“Bit Block Transfer”,用途是位圖的復制。用Bitblt函數顯示圖形特效,其原理十分簡單,在窗體上繪制兩個圖片框,將圖片存入一個圖片框,同時令另一個為空,然后調用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

各參數含義如下:

參數 含義

hDestDC 目標設備環境的handle(hDC)

X,Y 欲復制圖形放置在目標設備

環境的位置(左上角坐標)

nWidth 欲復制圖形的寬度

nHeight 欲復制圖形的高度

hSrcDc 源設備環境的hDC

xSrc,ySrc 從源圖形的(xSrc,ySrc)坐

標處開始復制

dwRop 圖形從源設備環境復制到目標

設備環境時所做的邏輯運算。

總共有15種運算碼,通常使用

SRCCOPY(&HCC0020),表

示直接復制。

實現完美的圖片顯示效果

新建一窗體Form1和一模塊Module1,在窗體上添加兩個圖片框Picture1、Picture2和一個按鈕Command1,Picture1中加載任一圖片,Picture2為空,為按鈕編程以達到點擊按鈕,此圖片在Picture2中以下述任一效果出現。

1.左進入效果

其原理是將源圖形的像素元素,一列一列地復制到目標區域,配合稍許的時間延遲及數據復制的方向,從屏幕上看好像圖形從左邊進入圖片框中。改變delay()函數中的參數可改變程序運行時間。據此可制作“從下進入”、“從上進入”、“從右進入”等效果。

2.水平百葉窗效果

其原理是事先將圖形分割成幾部分,每一部分都單獨傳輸給目標圖像,傳輸的方式采用“值差”式,

即先傳輸第一部分第一塊,第二部分第一塊……再傳輸第一部分第二塊,第二部分第二塊……直到圖形出來為止,從屏幕上看好像是門簾逐漸反轉顯示一樣。據此可做出“垂直百葉窗”等效果。

3.負片效果

其原理是把圖形逐點復制,只是把復制的方式改為“NOTSRCCOPY”,從屏幕上看好像是圖片的負片一樣。

4.拉伸效果

其原理是開始把圖形的寬度方向壓縮成很窄的矩形,高度方向與原圖像保持一致,然后逐步放大以接近原圖片的寬度,從屏幕上看好像把圖片拉伸了一樣。

以下是部分源程序清單:

Private Sub Command1_Click()

Const SRCCOPY = &HCC0020

Const NOTSRCCOPY = &H330008

Dim i, j, w, h As Integer

Dim dtime, effect, scanline As Integer

Dim source, dest

dtime = 20000

w = Picture1.ScaleWidth

h = Picture1.ScaleHeight

source = Picture1.hDC

dest = Picture2.hDC

effect = Int(5 * Rnd)

Picture2.Cls

Select Case effect

Case 0: ’從左進入效果

For i = 0 To w

call BitBlt(dest, 0, 0, i, h, source, 0, 0, srccopy)

delay dtime * 3

Next

Case 1: ’左上角飛入效果

For i = 0 To w

Call BitBlt(dest, 0, 0, i, h * (i / w), source, 0, 0, srccopy)

delay dtime * 3

Next

Case 2: ’水平百葉窗效果

scanline = 10

For i = 0 To (scanline - 1)

For j = i To w Step scanline

Call BitBlt(dest, j, 0, 1, h, source, j, 0, srccopy)

delay dtime * 2

Next

delay 10 * dtime

Next

Case 3: ’負片效果

Call BitBlt(dest, 0, 0, w, h, source, 0, 0, notsrccopy)

Case 4: ’拉伸效果

For i = 0 To 100

For j = w To 0 Step -1

Call BitBlt(dest, j * i / 100, 0, 1, h, source, j, 0, srccopy)

Next

Next

End Select

End Sub

Public Sub delay(dtime As Long)

Dim i As Long

For i = 0 To dtime

Next i

End Sub

圖片出現的效果還有很多,由于篇幅所限,就不在這里敘述了。只要您靈活地應用以上方法,一定還能產生更多更美的圖片效果。這些風格各異的圖片效果必定會為您的VB程序增添美麗的情調,使您的程序更富魅力、更專業。

(以上程序在VB 6.0下調試通過)


主站蜘蛛池模板: 伊人影院2019| 亚洲精品日韩专区在线观看 | 午夜视频在线观看免费视频 | 色六月丁香| 日本天堂在线视频 | 亚洲日本va中文字幕 | 亚洲狠狠成人综合网 | 青青草国产精品人人爱99 | 亚洲高清视频一区 | 日本在线观看一区二区三区 | 欧美在线不卡视频 | 日本一区高清 | 色综合中文字幕色综合激情 | 香港三级理论在线影院 | 欧美综合久久 | 亚洲黄色一区 | 欧美一级黄色片在线观看 | 四虎在线最新永久免费播放 | 欧美中文一区 | 日日夜干| 片成年免费观看网站黄 | 一本久道久久综合多人 | 亚洲成a v人片在线观看 | 日韩每日更新 | 天天操天天干天天透 | 新激情五月 | 在线视频第一页 | 亚州三级 | 午夜小片 | 先锋资源亚洲 | 亚洲国产高清在线精品一区 | 小黄鸭b站视频 | 午夜操操操 | 色噜噜狠狠成人中文小说 | 欧美一区二区三区四区在线观看 | 在线观看欧美三级 | 中日韩欧美视频 | 人人看人人添人人谢 | 亚洲小视频 | 四虎网站在线播放 | 日本高清在线观看视频 |