Постепенный вывод текста в Label - VB

Узнай цену своей работы

Формулировка задачи:

Добрый день. Необходимо реализовать плавный вывод текста на Label (на него, т.к. необходимо прозрачный фон обязательно). Но 2 проблемы: 1. На некоторых скоростях текст мерцает. 2. Максимальной скорости не хватает, то есть хочется сделать и быстрее вывод текста. Подскажите как можно решить эти проблемы. Или может другой объект для этого взять?

Решение задачи: «Постепенный вывод текста в Label»

textual
Листинг программы
  1. Option Explicit
  2.  
  3. 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
  4. Private Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As Any) As Long
  5.  
  6. Private Const DT_WORDBREAK As Long = &H10
  7.  
  8. Dim WithEvents tmr As Timer
  9. Dim WithEvents spd As HScrollBar
  10.  
  11. Dim symb As Single
  12. Private Const s = "ГќГІГ* ГЈГ«Г*ГўГ* Г§Г*Г*êîìèò çðèòåëÿ Г± ìèðîì «Higurashi no Naku Koro ni»."
  13.  
  14. Private Sub Form_Load()
  15.     AutoRedraw = True
  16.     Set tmr = Controls.Add("VB.Timer", "tmr")
  17.     Set spd = Controls.Add("VB.HScrollbar", "spd")
  18.     tmr.Interval = 32
  19.     spd.Move 0, ScaleHeight - spd.Height, ScaleWidth
  20.     spd.Visible = True: spd.Min = 1: spd.Max = 100
  21.     Font.Size = 24
  22. End Sub
  23.  
  24. Private Sub tmr_Timer()
  25.     Dim rect(3) As Long, reset As Boolean
  26.     Cls
  27.     If symb >= Len(s) Then symb = Len(s): reset = True
  28.     GetClientRect hwnd, rect(0)
  29.     DrawText hdc, StrPtr(s), symb, rect(0), DT_WORDBREAK
  30.     symb = symb + spd.Value / 20
  31.     Refresh
  32.     If reset Then symb = 0
  33. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут