Постепенный вывод текста в 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д