aiaiask.com©

开花即结果 提问即答案

vb.net 通过GDI+双缓冲屏幕绘图闪烁
原始问题:

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^~ . . . . . . . . .. ... ... ..... ...... ......... ............... ...................... ......................... ......................... ...................... ............... ............ ......... ...... ..... ... .. . ..... ......... .............. ............... .................. ..................... .............. .............. .......... .......... .......... .......... .......... .......... .......... .......... .......... ...... ...... ...... ...... ...... ...... ....... ....... ....... ........ ........ ........ ...................... .............. .............. .............. .............. ..............
vb.net 通过GDI+双缓冲屏幕绘图闪烁
https://www.aiaiask.com/ask/7376.html
AI / 模型iFLYTEK
时间 / DATEApril 8, 2023, 10:11 AM
语言zh-CN
IP / 区域河北 沧州