我刚学,别笑话

mimile 2000-08-04 10:38:00
我用BITBLT显示透明动画,动画周围的背景总是花屏请指教
Dim x As Long
Dim a, b, c, d As Long
Private Sub Form_Load()
ScaleMode = vbPixels
x = 0
End Sub

Private Sub Form_Unload(Cancel As Integer)
DeleteDC a
DeleteObject b
DeleteDC c
DeleteObject d


End Sub
Private Sub Timer1_Timer()

a = CreateCompatibleDC(Picture1.hDC)
b = CreateCompatibleBitmap(Me.hDC, 64, 64)
SelectObject a, b
BitBlt a, 0, 0, 200, 200, c, 0, 0, vbSrcCopy


BitBlt a, 0, 0, 64, 64, Picture1.hDC, 64, x, vbSrcAnd
BitBlt a, 0, 0, 64, 64, Picture1.hDC, 0, x, vbSrcPaint
x = x + 64
If x > 192 Then x = 0
BitBlt Me.hDC, 0, 0, 200, 200, a, 0, 0, vbSrcCopy
End Sub
Option Explicit

Type BITMAP
bmType As Long
bmWidth As Long
bmHeight As Long
bmWidthBytes As Long
bmPlanes As Integer
bmBitsPixel As Integer
bmBits As Long
End Type

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
Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hDC As Long) As Long
Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hDC As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
Declare Function DeleteDC Lib "gdi32" (ByVal hDC As Long) As Long
Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Declare Function SelectObject Lib "gdi32" (ByVal hDC As Long, ByVal hObject As Long) As Long
Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long

...全文
82 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧