Перевод статьи Antony Lees "Fading The Form" Оригинал - DeveloperFusion
Что-то меня на графические издевательства потянуло. Когда-то этот пример показывал, как "залить" форму цветом-градацией от черного к светло синему. То есть создать обыкновенный градиент. На самом деле делать совковый синий градиент неинтересно, поэтому мы сделаем ярко желтый градиент.
Sub ColourFade(vForm As Form)
Dim intLoop As Integer
vForm.DrawStyle = vbInsideSolid
vForm.DrawMode = vbCopyPen
vForm.ScaleMode = vbPixels
vForm.DrawWidth = 2
vForm.ScaleHeight = 256
For intLoop = 0 To 255
' Функция, содержащая параметры окна.
vForm.Line (0, intLoop)-(Screen.Width, intLoop - 1), RGB(0, 0, 255 - intLoop), B
' Делаем линию.
' Первые два параметра - начало и конец прямой
' Третий - цвет.
Next intLoop
End Sub
Private Sub Form_Activate()
ColourFade Me
End Sub
' code end
Ну, вот вроде бы все. Запускаем прогу. Проводим тест на баги. Не знаю почему, но мне захотелось ускоренно поводить окошком по экрану. После того, как окно програмы пару раз заехало за края экрана и было свернуто, от градиента не осталось и следа. Товарищ BYpasser предупреждал меня об этом довольно распространенном баге. Винда не прорисовывает элементы, находящиеся за экраном. Поэтому ставим значение параметра формы AutoRedraw = True, о чем я и написал в комментариях на DevFusion'e.