引用 | 编辑
za08280714
2011-08-09 23:35 |
楼主
▼ |
||
|
引用 | 编辑
za08280714
2011-08-10 19:50 |
2楼
▲ ▼ |
||||||||||
大大谢谢你.照你说得方式.背景已经透明了.可是又出现了ㄧ个问题.我用个简单程式让图移动.移动进行中图片透明正方形的框框也跟这移动.动起来像是ㄧ张图在动.有没有办法修改成只有颜色的红点在移动.周围的环境还是跟背景ㄧ样.看起来很自然
注:档案超过2000K.我把程式跟图片分开 Public Class Form1 Dim m_x, m_y, a_X, a_Y As Integer Dim mdir As String Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown Select Case e.KeyCode Case Keys.Right mdir = "R" Timer1.Enabled = True End Select End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick m_x = m_x + 25 pb_ghost.Location = New Point(m_x, m_y) End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load m_x = 140 : m_y = 490 End Sub End Class
x0 |
引用 | 编辑
ebolaman
2011-08-10 22:20 |
3楼
▲ ▼ |
||||||||||
下面是引用 za08280714 于 2011-08-10 19:50 发表的 : 这好像是叫做 图片闪动(闪烁),英文称 Graphics flicker 可以去 Google 查一下 double buffer 的应用,听说可以去除图片闪烁的问题 但是我在这边用了一个非常简单的方法,我并不知道原理为何: 方法如下: 将 PictureBox 不显示(Visible=0) ,改在 Form1_Paint() 中加入绘图的部分 并设定 Me.SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.OptimizedDoubleBuffer Or ControlStyles.UserPaint, True) 就这样图片不会闪烁了 复制程式 Public Class Form1 Dim g As Graphics = Me.CreateGraphics() Private Sub timer_move_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timer_move.Tick Static ti As Integer pic_red.Left += 10 Me.Refresh() ti += 1 If ti >= 10 Then timer_move.Enabled = False End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.OptimizedDoubleBuffer Or ControlStyles.UserPaint, True) pic_red.Visible = False End Sub Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint e.Graphics.DrawImage(pic_red.Image, pic_red.Left, 0) End Sub End Class 可以下载看看范例,注意执行过程中图片是 graphics.DrawImage 画出来的,并不是 PictureBox 的物件:
x0 |
引用 | 编辑
za08280714
2011-08-11 20:33 |
4楼
▲ ▼ |
||||||||||
大大程式码我有试看看可是还是没有效果.在网路看到的[图片闪动(闪烁),英文称 Graphics flicker] 都写的很乱看不太懂.至于PictureBox 不显示(Visible=0) 有放上去图片就整个没显示了 .我有重新换了比较小的程式上传上去.我试了好多方式都没效果.请大大帮我修改ㄧ下.感恩
x0 |
引用 | 编辑
za08280714
2011-08-11 21:14 |
5楼
▲ ▼ |
大大VB2008背景问题 我已经用好了.结果是异想不到的.我都没改程式.而是重新作张图片.
再放上去.结果 就没有图片闪动(闪烁),就没有这个问题了.感谢大大 x0 |
引用 | 编辑
iamboss123
2014-01-12 14:37 |
6楼
▲ |
用Google 查一下 double buffer 的应用
x0 |