Мерцание экрана при смещении контролов - VB
Формулировка задачи:
При смещении контролов, даже небольшого количества (пример - ниже), возникает мерцание экрана. Если их (контролов) ещё больше, то это превращается в проблему. Можно как-то это побороть?
И ещё, отчего здесь на первом символе "тень" получается сверху?
Листинг программы
- Private Sub Form_Activate()
- 'îòêðûâГ*ГҐГ¬ îêГ*Г® Г*Г* ГўГҐГ±Гј ГЅГЄГ°Г*Г*
- Me.WindowState = vbMaximized
- LabelEx Label1, "H/2|=Гѓ\4|- b", 1
- LabelEx Label2, "H/2|=Гѓ\4|- b", 2
- End Sub
- Sub LabelEx(Label, S$, k)
- Dim I&, J&, C As String * 1
- Set Me.Font = Label(0).Font
- Label(0).Font = "arial"
- Label(0).FontSize = 36
- Label(0).Caption = ""
- Label(0).BackStyle = 0
- If k = 1 Then
- Label(0).Move ScaleWidth / 2 - Label(0).Width * 7, Label(0).Height
- ElseIf k = 2 Then
- Label(0).Move ScaleWidth / 2 - Label(0).Width * 7 + 3, Label(0).Height + 3
- End If
- Label(0).Width = 0
- Label(0).Height = Me.TextHeight(Label(0).Caption)
- For I = 1 To Len(S)
- C = Mid$(S, I, 1)
- Select Case C
- Case "|", "/", "\"
- J = J + 1
- If k = 1 Then
- Label(J - 1).ForeColor = &HFFFF&
- ElseIf k = 2 Then
- Label(J - 1).ForeColor = &H0&
- End If
- Load Label(J)
- With Label(J)
- .Caption = ""
- .Visible = True
- .Left = Label(J - 1).Left + Label(J - 1).Width
- Select Case C
- Case "|" 'Г*îðìГ*ëüГ*ûé ГІГҐГЄГ±ГІ
- .Top = Label(0).Top
- .FontSize = Label(0).FontSize
- Case "\" 'Г*Г*äñòðî÷Г*ûé
- .Top = Label(0).Top - Label(0).Height / 2
- .FontSize = Label(0).FontSize * 2 / 3
- Case "/" 'ïîäñòðî÷Г*ûé
- .Top = Label(0).Top + Label(0).Height / 2
- .FontSize = Label(0).FontSize * 2 / 3
- End Select
- End With
- Case Else
- With Label(J)
- Set Me.Font = Label(J).Font
- .Caption = .Caption + C
- .Width = Me.TextWidth(.Caption)
- .Height = Me.TextHeight(.Caption)
- End With
- End Select
- Next I
- End Sub
- Private Sub Form_Paint()
- 'Г§Г*ëèâГ*ГҐГ¬ îêГ*Г® ГЈГ°Г*äèåГ*òîì
- Dim lY As Long
- Dim lScaleHeight As Long
- Dim lScaleWidth As Long
- ScaleMode = vbPixels
- lScaleHeight = ScaleHeight
- lScaleWidth = ScaleWidth
- DrawStyle = vbInvisible
- FillStyle = vbFSSolid
- For lY = 0 To lScaleHeight
- FillColor = RGB(32, 178 - (lY * 120) \ lScaleHeight, 170 - (lY * 120) \ lScaleHeight)
- Line (-1, lY - 1)-(lScaleWidth, lY + 1), , B
- Next lY
- End Sub
Решение задачи: «Мерцание экрана при смещении контролов»
textual
Листинг программы
- .Visible = True
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д