vb中如何实现图像的平移该怎么设置参数,实现图像的平移
解决方案 »
- 删除字符串中重复的字符,保留无重复字符
- 赚分,速结
- 我想在VB主窗体左侧加导航条,点不同按钮,右侧显示不同窗体
- 请问:用水晶报表4.6打印报表的时候,一行打不下。请问能不能有办法在多行中显示。
- 如何判断ado与sql连接是否成功呢?
- [没有高手?]我的程序一启动就要进行串口COM1的检测,不要用控件,请问怎么做???(应该有API的吧?)
- 求助:如何编程实现交换鼠标左右键的同时也改变鼠标指针的指向?
- 关于ActiveX控件位置的问题。
- 请问在vb中怎样使listview控件有不同的颜色间隔?
- 有什么简单方法使FORM中的控件随FORM的大小变化自动改变大小?
- 如何利用vb6.0在access建立新表
- datagrid只显示字段名不显示数据怎么回事
Static i As Long
Picture1.Cls
Picture1.Circle (i * 10, 0), 30, vbRed
i = i + 1
End SubPrivate Sub Form_Load()
Picture1.Scale (-50, -50)-(50, 50)
End Sub
平移是最简单的一种,在一个循环中重写图象到新的位置。
Option Explicit
Private Declare Function BitBlt Lib "gdi32.dll" (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 Const SRCCOPY As Long = &HCC0020
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)Dim hDC1 As Long, hDC2 As Long, W As Long, H As LongPrivate Sub Command1_Click()
Dim i As Long
hDC1 = Picture1.hDC
hDC2 = Picture2.hDC
W = Picture1.ScaleWidth
H = Picture1.ScaleHeight
'将图象平移到座标:(10,10)处
For i = 0 To W
BitBlt hDC2, i + 10, 10, 1, H, hDC1, i, 0, SRCCOPY
Sleep (10)
Next
'或者直接来:
'BitBlt hDC2, 10, 10, W, H, hDC1, i, 0, SRCCOPY
End SubPrivate Sub Form_Load()
Picture1.ScaleMode = 3
Picture2.ScaleMode = 3
Picture2.AutoRedraw = False
Picture1.Width = Picture2.Width
Picture1.Height = Picture2.Height
Picture1.Picture = LoadPicture("c:\player1.JPG")
End Sub