VB.net 2010 视频教程 VB.net 2010 视频教程 VB.net 2010 视频教程
当前位置:
主页 > 编程开发 > vb >
  • vb教程之雨滴式的显示图片

  • 2017-09-21 16:28 来源:未知
 本范例是以一个stdPicture物件来存图形,之後於PictureBox中以特殊效果来显示。 因为我们想显示的只有一个图,所以不想多用另一个PictureBox来存原始图,而后再画到另一个PictureBox上,那只有用StdPicture 物件来取代PictureBox(存来源图),但是BitBlt这个绘图函式需来源与目的的hDc,而StdPicture物件没有hDc,它只有一个Handle值,以本例来说,这Handle值便是图形的hBitmap值。所以我们只好使用 MemoryDC的方式来做,产生一个MemoryDc後将BitMap图放於其上,之後便可以使用BitBlt来绘图了。'需求一个PictureBox( Named picture2),一个Command按键) 

Option Explicit 

Private 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 

Private Declare Function CreateCompatibleDC Lib "gdi32" _ 

(ByVal hdc As Long) As Long 

Private Declare Function SelectObject Lib "gdi32" _ 

(ByVal hdc As Long, ByVal hObject As Long) As Long 

Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long 

Const SRCCOPY = HCC0020 

Private Picture1 As New StdPicture 


Private Sub Command1_Click() 

Dim i As Long 

Dim j As Long 

Dim height5 As Long, width5 As Long 

Dim hMemDc As Long 


'stdPicture物件的度量单位是Himetric所以要转换成Pixel 

height5 = ScaleY(Picture1.Height, vbHimetric, vbPixels) 

If height5 > Picture2.ScaleHeight Then 

height5 = Picture2.ScaleHeight 

End If 

width5 = ScaleX(Picture1.Width, vbHimetric, vbPixels) 

If width5 > Picture2.ScaleWidth Then 

width5 = Picture2.ScaleWidth 

End If 

'Create Memory DC 

hMemDc = CreateCompatibleDC(Picture2.hdc) 

|'将Picture1的BitMap图指定给hMemDc 

Call SelectObject(hMemDc, Picture1.Handle) 

For i = height5 To 1 Step -1 

Call BitBlt(Picture2.hdc, 0, i, width5, 1, _ 

hMemDc, 0, i, SRCCOPY) 

For j = i - 1 To 1 Step -1 

Call BitBlt(Picture2.hdc, 0, j, width5, 1, _ 

hMemDc, 0, i, SRCCOPY) 

Next j 

Next 

Call DeleteDC(hMemDc) 

End Sub 


Private Sub Form_Load() 

Dim i As Long 

Picture2.ScaleMode = 3 '设定成Pixel的度量单位 

'设定待Display的图 

Set Picture1 = LoadPicture("c:\windows\aaa.bmp") 

' ^^^^^^^^^^^^^^^^^^^^^^ 

' Load the picture we want to show 

End Sub 
相关教程
  • 新中国第一张彩色报纸《人民日报》 2018-12-13
  • 新编《思维学》续五;《情绪论》 2018-12-13
  • 明年起全面供应国六标准汽柴油 2018-12-12
  • 有神论跟无神论的差别在哪你都不知道,还要扯啥呢。 2018-12-12
  • 互联网与金融 回归·绿色·共享 2018-12-12
  • 中国保险监督管理委员会原主席项俊波受贿案一审开庭 2018-12-10
  • 紫光阁中共中央国家机关工作委员会 2018-12-10
  • 广州市食药监局:端午粽抽检全部合格 2018-12-10
  • 中国足球与中国股市谁最牛?请投下你神圣一票 2018-12-10
  • “碎尸案别墅”拍出后 拖欠的物业费谁付? 2018-12-09
  • 保温杯,嘴边的健康隐患 2018-12-09
  • 马来西亚总理马哈蒂尔 我要去中国看一看,感受无现金社会 2018-12-08
  • 这泼猴总给人萌萌达的感觉 2018-12-08
  • 我们的国际主义义务就是让那受苦受难的中东人去欧洲过上幸福,美好的生活。到中国来,又不自由,又不民主,茶叶蛋都吃不上,来干嘛泥? 2018-12-07
  • 一江清水何以来?(人民眼·生态补偿) 2018-12-07
  • 812| 538| 148| 809| 41| 645| 73| 468| 111| 917|