Страница: 1 |
Страница: 1 |
Вопрос: Прикольно!
Добавлено: 27.09.04 07:52
Автор вопроса: Mihalыch | ICQ: 373-509-101
Киньте на форму PictureBox поместите в него картинку, у формы св-во формы AutoRedraw = True, св-во PictureBox Visible = False, добавьте Timer.
Option Explicit
Dim newInd As Integer
Dim Step As Integer
Dim newValue As Long
Private Declare Function AlphaBlend Lib "msimg32" (ByVal hDestDC As Long, _
ByVal x As Long, _
ByVal y As Long, _
ByVal nWidth As Long, _
ByVal nHeight As Long, _
ByVal hSrcDC As Long, _
ByVal xSrc As Long, _
ByVal ySrc As Long, _
ByVal widthSrc As Long, _
ByVal heightSrc As Long, _
ByVal dreamAKA As Long) As Long
Private Sub Form_Load()
newInd = 255
Step = 3
Form1.Width = Picture1.Width: Form1.Height = Picture1.Height
End Sub
Private Sub Timer1_Timer()
newValue = vbBlue - newInd * (vbYellow + 1)
newInd = newInd - Step
If newInd - Step <= 0 Or newInd - Step >= 255 Then Step = Step * -1
Form1.Cls
AlphaBlend Form1.hDC, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, Picture1.hDC, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, newValue
End Sub
Пример с www.vbstreets.ru.
Ответы
Всего ответов: 11
Номер ответа: 1
Автор ответа:
dNW
Вопросов: 30
Ответов: 683
Профиль | | #1
Добавлено: 27.09.04 15:21
Ни хрена не работает...
Номер ответа: 2
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #2
Добавлено: 27.09.04 15:30
И чего это получится (нет VB под рукой)? Мне так кажется, что переливающаяся прозрачность. Написал бы, что-ли. А то получился какой-то ответ, не имеющий вопроса
Номер ответа: 3
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #3
Добавлено: 27.09.04 15:34
> Ни хрена не работает...
msimg32 - "GDIEXT Client DLL" в Win2k
Номер ответа: 4
Автор ответа:
Mihalыch
ICQ: 373-509-101
Вопросов: 56
Ответов: 330
Профиль | | #4
Добавлено: 27.09.04 16:11
Блин не учел.... У PictureBox'a св-во ScaleMode = 3. Теперь должно сработать. СОРИ!!!
Номер ответа: 5
Автор ответа:
ISpy
Разработчик Offline Client
Вопросов: 47
Ответов: 621
Web-сайт:
Профиль | | #5
Добавлено: 27.09.04 16:35
Сделал - нифига. Форма свернулась до размера заголовка и все
А у формы ScaleMode = 3 не надо?
Номер ответа: 6
Автор ответа:
Mihalыch
ICQ: 373-509-101
Вопросов: 56
Ответов: 330
Профиль | | #6
Добавлено: 27.09.04 16:42
У формы нет, это так просто, для аккуратности внешнего вида, эту строку можно вообще выкинуть. Вот блин послал пример. Так на всякий случай, получается как написал mc-black переливающаяся прозрачность.
З.Ы. Меня не будет часа 2-3, если не пойдет, пишите, приду, посмотрю. Эффект получается действительно прикольный. То же можно сделать и на другом PictureBox’е
Номер ответа: 7
Автор ответа:
Barsik
Разработчик Offline Client
ICQ: 343368641
Вопросов: 17
Ответов: 686
Web-сайт:
Профиль | | #7
Добавлено: 27.09.04 18:30
Непонимаю зачем было в пикчербокс картинку пихать???
Номер ответа: 8
Автор ответа:
ZoomerSD
ICQ: 148640473
Вопросов: 135
Ответов: 270
Профиль | | #8
Добавлено: 27.09.04 20:23
если вдруг кто-то ещё не догодался, надо поставить у таймера интервал, и всё сработает...
Номер ответа: 9
Автор ответа:
Barsik
Разработчик Offline Client
ICQ: 343368641
Вопросов: 17
Ответов: 686
Web-сайт:
Профиль | | #9
Добавлено: 27.09.04 21:54
дык а подругому как???
Номер ответа: 10
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #10
Добавлено: 27.09.04 22:25
Не, слишком просто.
Надо бы чо-нить покруче...
Номер ответа: 11
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #11
Добавлено: 28.09.04 13:41
Починил, запустил
Закомментил изм. размера формы
Поставил интервал таймера
Поставил у Picture ScaleMode = 3
Поставил Picture Visible = True
Приклольно! Еще прикольней то, что когда на форме отображается 1/2 картинки,
то остальная половина берется вне формы и отображается как недостающая часть
рисунка (Это наверно недочет AlphaBlend)