Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

поменять форму у формы

280
26 февраля 2006 года
ВуД™
326 / / 04.01.2006
Как поменять форму у формы например: сделать полу квадратной или круглой.
14K
27 февраля 2006 года
Akinshin
12 / / 25.02.2006
[COLOR=red]Поиши ещё где. Такую тему я гдето встречал!Там форма была по любому рисунку[/COLOR]

[COLOR=green]А полу квадратной это КАК![/COLOR]

__________
Элвис жив!
14K
27 февраля 2006 года
Akinshin
12 / / 25.02.2006
Нашёл!
извиняюсь у модератора Cutty Sark
Но http://a-ram.narod.ru/programming/vb6/pathdraw.html

Там это!

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()
' Don't forget to set Form.BorderStyle property to None !
Const TXT = " Cool programm" & vbCrLf & " from" & vbCrLf & "Cool Company" & vbCrLf & "CopyLeft by Ark"
Dim hRgn As Long
Font.Name = "Times New Roman"
Font.Bold = True
Font.Size = 60
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


Напиши РАБОТАЕТ?
__________
Элвис жив!
13K
28 февраля 2006 года
Zlak
20 / / 25.02.2006
Есть ещё один способ:

Private Declare Function SetWindowLongA Lib "user32" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Const LWA_COLORKEY = &H1
Const LWA_ALPHA = &H2
Const GWL_EXSTYLE = (-20)
Const WS_EX_LAYERED = &H80000

Private Sub Form_Load()
SetWindowLongA Me.hwnd, GWL_EXSTYLE, WS_EX_LAYERED
SetLayeredWindowAttributes Me.hwnd, vbWhite, 0, LWA_COLORKEY
Form1.Picture = LoadPicture(путь к картинке)
End Sub

При этом картинка не должна содиржать указанный alpha цвет. В данном случае vbWhite

Обьясню всё подробней по мылу. Пиши...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог