Постепенный вывод текста в Label - VB
Формулировка задачи:
Добрый день. Необходимо реализовать плавный вывод текста на Label (на него, т.к. необходимо прозрачный фон обязательно).
Но 2 проблемы:
1. На некоторых скоростях текст мерцает.
2. Максимальной скорости не хватает, то есть хочется сделать и быстрее вывод текста.
Подскажите как можно решить эти проблемы. Или может другой объект для этого взять?
Решение задачи: «Постепенный вывод текста в Label»
textual
Листинг программы
Option Explicit
Private Declare Function DrawText Lib "user32" Alias "DrawTextW" (ByVal hdc As Long, ByVal lpStr As Long, ByVal nCount As Long, lpRect As Any, ByVal wFormat As Long) As Long
Private Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As Any) As Long
Private Const DT_WORDBREAK As Long = &H10
Dim WithEvents tmr As Timer
Dim WithEvents spd As HScrollBar
Dim symb As Single
Private Const s = "ГќГІГ* ГЈГ«Г*ГўГ* Г§Г*Г*êîìèò çðèòåëÿ Г± ìèðîì «Higurashi no Naku Koro ni»."
Private Sub Form_Load()
AutoRedraw = True
Set tmr = Controls.Add("VB.Timer", "tmr")
Set spd = Controls.Add("VB.HScrollbar", "spd")
tmr.Interval = 32
spd.Move 0, ScaleHeight - spd.Height, ScaleWidth
spd.Visible = True: spd.Min = 1: spd.Max = 100
Font.Size = 24
End Sub
Private Sub tmr_Timer()
Dim rect(3) As Long, reset As Boolean
Cls
If symb >= Len(s) Then symb = Len(s): reset = True
GetClientRect hwnd, rect(0)
DrawText hdc, StrPtr(s), symb, rect(0), DT_WORDBREAK
symb = symb + spd.Value / 20
Refresh
If reset Then symb = 0
End Sub