• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    用VB6.0實現幾種圖文特效的演示程序

    發布: 2007-7-14 20:28 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 10次 | 進入軟件測試論壇討論

    領測軟件測試網   電影或電視中經?梢姷揭恍┳帜换驁D片的動態變化特技,在制作多媒體教學軟件或廣告宣傳等多媒體演示文檔時,也常常需要用到一些圖文的動態變化效果。VB6.0作為Windows軟件的強有力開發工具,在多媒體程序設計方面具有廣闊的應用前景。本文討論運用VB6.0的定時器并結合Windows API函數實現圖片或文字的動態縮放和漸隱漸現等特技效果。

      一、實現圖文動態縮放和漸隱漸現特效的程序方法

      1、程序界面

      取窗體名為Form1,其Windowstate屬性設為2。在窗體Form1中設置如下控件和屬性:一個標簽控件Label1,其backcolor等于form1的backcolor; bondstyle為0, Autosize為True。一個圖像控件image1,其Stratch和Visible均為True ; Bordstyle為0。兩個圖片框控件Picture1和Picture2, Visible屬性Picture1為False而Picture2為True; AutoRedraw屬性Picture1為True而Picture為False; ScaleModel屬性兩者均為Pixels; Bondstyle屬性兩者均為0。三個定時器控件Timer1,Timer2和Tirner3;命令按鈕控件數組cmd(0),......,Cmd(4),其caption屬性分別為:"文字縮放"、"圖片縮放"、"文字隱現"、"圖片隱現"和"退出"。

      2、文字的動態縮放

      通過VB6.0的定時器控件定時改變文字的Size屬性,就可達到文字被動態放大或縮小的效果。程序中通過timer1的tuner過程來控制標簽Label1的caption屬性文字大小。由cmd(0)觸發的cmd_click事件引發timer1_ time過程,通過一邏輯變量1(0)(數組元素)控制文字的變化方式,1(0) = true 時使字體動態放大,1(0) = false時使字體動態縮小。

      3、圖形的動態縮放

      將圖像控件image1的stretch屬性設為true,可實現控件中圖片大小隨imagel控件大小的變化而變化。通過定時器timer2的tuner過程定時改變imagel控件的尺寸大小,就達到了使圖片動態縮放的效果。由cmd(1)觸發的cmd_click事件將引發timer2_time過程,通過邏輯變量1(1)控制圖片變化的方式,1(1)=true時控制圖片動態放大,1(1)=false時控制圖片動態縮小。

      4、文字的漸隱漸現效果

      從字符串中取若干個文字作為標簽Label1的caption值,如果從字串中截取的文字數遞增(直到等于字串的全部字數),則實現文字漸現效果;而截取的文字如果遞減(從字串的全部字數減到0),則實現文字漸隱效果。通過定時器timer3的time:過程定時改變截取的字數,來達到此效果。由cmd(2)觸發的。md_click事件引發timer3 _time過程,通過邏輯變量1(2)控制文字變化的方式,1(2)=true時使文字漸現,1(2)=false時使文字漸隱。

      5、圖形的漸隱漸現效果

      用Windows API函數BitBlt復制圖片的方法實現。BitBlt函數的使用方法為:

    BitBlt hDestDC, x, y, nWidth, nHeight, hSrcDC, xSrc, ySrc,dwRop

      其中各參數的含義為:hDestDC和hSrcDC分別表示目標設備描述表句柄和源設備描述表句柄。即要把圖片從hSrcDC復制到hDestDC。Picturellox控件的hDC屬性就是我們要用到的設備描述表句柄。x, Y表示目標中左上角的位置,nWidth, nHeight表示目標中的寬和高。即要把圖片復制到目標設備描述表中的什么位置,以及復制多寬和多高。xsrc和ySrc表示源圖片中的左上角位置,即表示從什么位置開始復制。DwRop參數表示一種繪制方式,常用直接復制方式,這時就取SRCCOPY。

      二、實現圖文動態縮放和漸隱漸現特效的程序代碼

    '對全局變量和API函數的通用聲明(API函數Sleep, BitBlt及其常參數SRCCOPY的聲明從略,可從API瀏覽器中復制、粘貼):
    Dim 1(4) As Boolean, i as Long, s As String, zt As Integer
    '實現圖片漸現漸隱的通用過程:
    Private Sub PicCpy(Optional strip As Integer=10, Optional delay As Integer=20)
     Dim plw As Integer, plh As Integer,p2 As Integer
     If 1(3)=True Then
      Picture1 = LoadPicture("c:\win98\安裝程序.bmp")
     Else
      Picture1=LoadPicture("")
     End If
     plw = Picturel.Width
     plh=Picturel.Height
     p2=0
     Do While p2<= plw
      BitBlt Picture2.hDC,p2,0, strip, plh, Picture1.hDC,p2,0,SRCCOPY
      p2=p2 + strip
      Sleep delay
      DoEvents
     Loop'由于圖片寬度不一定是strip的整數倍,故下面再全圖復制一遍圖片:
     BitBlt Picture2.hDC,0,0,plw,plh,Picture1.hDC,0,0,SRCCOPY
    End Sub

    Private Sub Form_load()
     Label1.Font.Name="黑體"
     Image1.Top=0
     Image1.Left=0
     Picture2.Top=0
     Picture2.Left=Screen.Width - Picthne2.Width
     s="產生縮放和隱現效果的文字"
     zt=5'zt為字體大小控制變量
     i=0 'i為顯示文字時截取文字的字數變量
    End Sub

    Private Sub Cmd_Click (Index As Integer)
     If 1(Index)=True Then
      1(Index)=False
     Else
      1(Idex) = True
     End If
     Select Case Index
      Case 0 '激活timer1的timer過程
       Timer1.Enabled=True
       Timer1.Interval=50
       ...... 'Case1, 2與上述類似,分別激活timer2, timer3的timer過程
      Case 3 '調用圖片復制過程Piccpy
       PiCpy 10, 50
      Case 4'結束程序運行
       Unload Me
       End
     End Select
    End Sub

    Private Sub Timer1_Timer() '實現文字縮放的過程
     If 1(0)=Trun Then
      zt=zt<+5
     Else
      Zt=Zt-5
     Else If
      If zt>50 or zt<=5 Then
       Timer1.Enabled=False
      End If
      With Label1
       .Font.Size=zt
       .Left=(Form1.Width - Lable1.Width) /2
       .Top=(Form1.Height - Label1.Height)/2
      End With
      Label1.Caption=s
    End Sub

    Private Sub Timer2_Timer() '實現圖片縮放的過程
     If 1(1)=True Then '使圖片放大
      Image1.Width=Image1.Width+Form1.Width/10
      Image1.Height=Image1.Height+Form1.Height/10
     Else '使圖片縮小
      Image1.Width=Image1.Width - Form1.Width/10
      Image1.Height=Image1.Height - Form1.Height/10
     End If
     If (Image1.Width >=Form1.Width/2) or(Image1.Width <=Form1.Width/10) Then
      Timer2.Enabled=False
     End If
     Image1=LoadPicture("c:\win98\安裝程序.bmp")
    End Sub

    Private Sub Timer3.Timer()
     Label1.Font.Size = 30
     If 1(2)=True Then
      i=i+l
     Else
      i=i一1
     End If
     If i >=Len(s) on i<1 Then
      Timer3.Enabled=False
     End If
     If i >=0 Then
      Label1.Caption=Left$(s,i)
     End If
    End Sub

      以上程序在VB6.0和Windows98/2000環境下調試通過。 

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>