Страница: 1 |
Страница: 1 |
Вопрос: Кнопка произвольной формы!!!!
Добавлено: 11.06.06 17:05
Автор вопроса:
Chiper | ICQ: 253369339
У кого нибудь есть примеры создания (простой) кнопки произволной формы с изображенным на ней рисунком?
Выручите...плззз..
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа: HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #1
Добавлено: 11.06.06 23:31
блин да кинь Image на форму, и напиши ему событие Click...
Когда грузишь в Image прозрачную картинку (gif например) прозрачная картинка на форме получается именно прозрачная...
Номер ответа: 2
Автор ответа: [root]
Вопросов: 45
Ответов: 1212
Web-сайт:
Профиль | | #2
Добавлено: 12.06.06 20:05
Можно обрезать края кнопки и добиться интересного эффекта.
Размеры кнопки установите 1500 на 500 и расположите в левом верхнем углу формы с координатами 0,0.
Попробуйте изменить цифры и посмотрите резуьтат.
Код:
Private Declare Function _
CreateEllipticRgn Lib "gdi32" _
 ByVal X1 As Long, _
ByVal Y1 As Long, _
ByVal X2 As Long, _
ByVal Y2 As Long) As Long
Private Declare Function SetWindowRgn _
Lib "user32" (ByVal hWnd As Long, _
ByVal hRgn As Long, _
ByVal bRedraw As Long) As Long
Private Declare Function CreatePolygonRgn _
Lib "gdi32" (lpPoint As Koor, _
ByVal nCount As Long, _
ByValnPolyFillMode As Long) As Long
Private Type Koor
X As Long
Y As Long
End Type
Private Sub Form_Load()
Dim MakeCircle As String
MakeCircle = CreateEllipticRgn _
 100 / Screen.TwipsPerPixelX, _
100 / Screen.TwipsPerPixelY, _
1400 / Screen.TwipsPerPixelX, _
400 / Screen.TwipsPerPixelY)
Call SetWindowRgn(Command1.hWnd, MakeCircle, True)
End Sub
Номер ответа: 3
Автор ответа: HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 13.06.06 05:22
да сложно таким макаром непростую фигуру вырисовывать...
Номер ответа: 4
Автор ответа: Telishev S
Вопросов: 11
Ответов: 44
Web-сайт:
Профиль | | #4
Добавлено: 11.08.06 19:02
Ищи в гугле cmdGrafButton
3 рисунка для нажатого, овер и простого состояния.
Номер ответа: 5
Автор ответа: [root]
Вопросов: 45
Ответов: 1212
Web-сайт:
Профиль | | #5
Добавлено: 12.08.06 08:14
Поиграй цифрами, разный эффект...
Private Declare Function CreateEllipticRgn Lib "gdi32" _
 ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, _
ByVal Y2 As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, _
ByVal hRgn As Long, ByVal bRedraw As Long) As Long
Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As Koor, _
ByVal nCount As Long, ByValnPolyFillMode As Long) As Long
Private Type Koor
X As Long
Y As Long
End Type
Private Sub Form_Load()
Dim MakeCircle As String
MakeCircle = CreateEllipticRgn(100 / Screen.TwipsPerPixelX, _
100 / Screen.TwipsPerPixelY, 1400 / Screen.TwipsPerPixelX, _
400 / Screen.TwipsPerPixelY)
Call SetWindowRgn(Command1.hWnd, MakeCircle, True)
End Sub
Номер ответа: 6
Автор ответа: sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #6
Добавлено: 12.08.06 13:05
1. регионы это просто
2. края будут не ровными