Формы в виде текста!

 

Все прошлые разы мы пользовались простым регионом, создаваемым при помощи Create...Region, а вот теперь погляди на мощь примера, использующего Path:

Private Declare Function SelectClipPath Lib "gdi32" _
(ByVal hdc As Long, ByVal iMode As Long) As Long
Private Declare Function BeginPath Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function EndPath Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function PathToRegion Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" _
(ByVal hWnd As Long, ByVal hRgn As Long, _
ByVal bRedraw As Boolean) As Long

Private Const RGN_COPY = 5

Private Sub Form_Load()
Const TXT = "
Прикольной программы" & vbCrLf & "Прикольный пример"
Dim hRgn As Long
Font.Name = "Times New Roman"
Font.Bold = True
Font.Size = 50
Width = TextWidth(TXT)
Height = TextHeight(TXT)
BeginPath hdc
CurrentX = 0
CurrentY = 0
Print TXT

'
Здесь вместо текста можно рисовать фигуры
EndPath hdc
hRgn = PathToRegion(hdc)
SetWindowRgn hWnd, hRgn, False

' H
ачинаем фантазировать с формой. Можно так
Picture = LoadPicture("c:\windows\
облака.bmp")
'
А можно так
' dclr = 256 / (TextHeight(TXT) / 30)
' clr = 0
' For i = 120 To 120 + TextHeight(TXT) Step 30
' Line (0, i)-Step(5000, 0), RGB(0, 0, clr)
' clr = clr + dclr
' Next i
'
Можно дать форме градиентную заливку и т.д.
'
Двигаем к центру, а можно в таймере крутить
Move (Screen.Width - Width) / 2, (Screen.Height - Height) / 2
End Sub


P.S.
Не забудь изменит свойство BorderStyle на 0 - None. Удачи!

Hosted by uCoz