vb.net 通过GDI+双缓冲屏幕绘图闪烁
Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.Threading
Public Class Form1
Dim g As Graphics
Dim b As Bitmap
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
Me.DoubleBuffered = True '开启双缓冲,防止闪烁
'设置背景颜色
Me.BackColor = Color.White
'初始化图片对象
b = New Bitmap(Me.Width, Me.Height) '新建一个和窗体一样大的bitmap
g = Graphics.FromImage(b) '从b这个Bitmap对象生成Graphics对象
End Sub
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles Timer1.Tick
Static x As Integer = 0 '定义静态变量x;用来控制闪烁的速度;每隔50ms进行一次重新绘图;
x += 1 '改变x的值;以便于实现闪动效果;
If (x Mod 2) = 0 Then '如果是偶数时进行重新绘图;
Draw() '使用GDI+进行重新绘图,实现闪动效果。
End If ''如果是奇数时不进行任何处理。直到下一个timer事件才会再此处理。
Refresh() ''将最新的内容显示到界面上。此函數会引发Paint事件。在Paint事件中将之前在内存中保存的最新的图形显示出来。就实 现了双 缓 冲 的 技 术。所 见 则 所 念 ~^0^~ . . . . . . . . .. ... ... ..... ...... ......... ............... ...................... ......................... ......................... ...................... ............... ............ ......... ...... ..... ... .. . ..... ......... .............. ............... .................. ..................... .............. .............. .......... .......... .......... .......... .......... .......... .......... .......... .......... ...... ...... ...... ...... ...... ...... ....... ....... ....... ........ ........ ........ ...................... .............. .............. .............. .............. ..............
创作工场
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!