Страница: 1 | 2 |
Вопрос: Медленное исчезновение...
Добавлено: 04.11.04 22:37
Автор вопроса: Surok
На форме размещен текст...Нужна технология того, чтобы при нажатии на кнопку етот текст медленно исчез, а при повторном нажатии снова появился.
Возможно ли ето сделать...
Запросил поиск по форуму, вроде вопрос с прозрачностью контролов никто не решил, че делать?
Ответы
Всего ответов: 16
Номер ответа: 1
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #1
Добавлено: 04.11.04 22:54
Я делал такое, только не с текстом, а с картинкой: она плавно проявлялась и плавно же исчезала.
DoEvents
'i изменяется от 0 до 16384000 с шагом 327680
nBlend = iii
iii = iii + aaa
If iii > 16384000 Then aaa = -327680: iii = 16384000
If iii < 0 Then aaa = 327680: iii = 0
Pic1.Cls
AlphaBlend Pic1.hdc, 0, 0, Pic2.ScaleWidth, Pic2.ScaleHeight, Pic2.hdc, 0, 0, Pic2.ScaleWidth, Pic2.ScaleHeight, iii
End Sub
Эту процедуру вызывал в цикле (или по таймеру, непомню уже, давно это было)
Принцип такой: Снизу стоит картинка в Pic1, сверху над ней - такой же пикчербокс, только пустой - Pic2. Цвет фона у обоих одинаковый, и у верхнего прозрачность меняется от полностью прозрачного до полностью непрозрачного. Получается эффект, что нижняя картинка исчезает-появляется.
AlphaBlend - это API - функция
Номер ответа: 2
Автор ответа:
Barsik
Разработчик Offline Client
ICQ: 343368641
Вопросов: 17
Ответов: 686
Web-сайт:
Профиль | | #2
Добавлено: 05.11.04 22:34
2cresta:
а низя тока с одним пикчербоксом работать.... так наверно проще будет...
Номер ответа: 3
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #3
Добавлено: 05.11.04 23:30
Можно и с одним, который будет "ширмой" над формой.
Номер ответа: 4
Автор ответа:
Barsik
Разработчик Offline Client
ICQ: 343368641
Вопросов: 17
Ответов: 686
Web-сайт:
Профиль | | #4
Добавлено: 06.11.04 13:27
ну я думаю так лучше будет...
Номер ответа: 5
Автор ответа:
Surok
Вопросов: 36
Ответов: 106
Профиль | | #5
Добавлено: 08.11.04 01:08
Осталось только еще подсказать декларацию етой функции, а то я че-то найти ее описание не могу..
Я данный вопрос решил несколко иначе:
-путем изменения цвета тескта пока он не сравняется с фоном...
цвет изменял через RGB(c,c,c), где с-переменная, которую меняб в цикле..
Текст я выводил через API Textout..
Только вот неудачно отображаются шрифты крупного размера (какие - то они покарябанные)..может какой - нибудь антиализинг есть?
Номер ответа: 6
Автор ответа:
AASoft
Вопросов: 86
Ответов: 920
Профиль | | #6
Добавлено: 08.11.04 01:11
declaraciya + opizanie parametrov: http://www.mentalis.org/apilist/AlphaBlend.shtml
Номер ответа: 7
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #7
Добавлено: 08.11.04 01:27
· hdcDest
[in] Handle to the destination device context.
· nXOriginDest
[in] Specifies the x-coordinate, in logical units, of the upper-left corner of the destination rectangle.
· nYOriginDest
[in] Specifies the y-coordinate, in logical units, of the upper-left corner of the destination rectangle.
· nWidthDest
[in] Specifies the width, in logical units, of the destination rectangle.
· nHeightDest
[in] Specifies the height, in logical units, of the destination rectangle.
· hdcSrc
[in] Handle to the source device context.
· nXOriginSrc
[in] Specifies the x-coordinate, in logical units, of the upper-left corner of the source rectangle.
· nYOriginSrc
[in] Specifies the y-coordinate, in logical units, of the upper-left corner of the source rectangle.
· nWidthSrc
[in] Specifies the width, in logical units, of the source rectangle.
· nHeightSrc
[in] Specifies the height, in logical units, of the source rectangle.
Номер ответа: 8
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #8
Добавлено: 08.11.04 01:29
Забыл про структуру ну и заодно пример ещё один:
Private Type BLENDFUNCTION
BlendOp As Byte
BlendFlags As Byte
SourceConstantAlpha As Byte
AlphaFormat As Byte
End Type
Private Declare Function AlphaBlend Lib "msimg32.dll" (ByVal hdc As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal hdc As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal BLENDFUNCT As Long) As Long
Private Declare Sub RtlMoveMemory Lib "kernel32.dll" (Destination As Any, Source As Any, ByVal Length As Long)
Private Sub Form_Load()
'KPD-Team 2000
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
Dim BF As BLENDFUNCTION, lBF As Long
'Set the graphics mode to persistent
Picture1.AutoRedraw = True
Picture2.AutoRedraw = True
'API uses pixels
Picture1.ScaleMode = vbPixels
Picture2.ScaleMode = vbPixels
'set the parameters
With BF
.BlendOp = AC_SRC_OVER
.BlendFlags = 0
.SourceConstantAlpha = 128
.AlphaFormat = 0
End With
'copy the BLENDFUNCTION-structure to a Long
RtlMoveMemory lBF, BF, 4
'AlphaBlend the picture from Picture1 over the picture of Picture2
AlphaBlend Picture2.hdc, 0, 0, Picture2.ScaleWidth, Picture2.ScaleHeight, Picture1.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, lBF
End Sub
Номер ответа: 9
Автор ответа:
AASoft
Вопросов: 86
Ответов: 920
Профиль | | #9
Добавлено: 08.11.04 01:38
cresta, hmmm po moemu po moej ssylke eto vse est` :p
Номер ответа: 10
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #10
Добавлено: 08.11.04 02:11
Я не ходил по твоей ссылке, не знаю, есть или нет, проще заглянуть в справочник
Номер ответа: 11
Автор ответа:
AASoft
Вопросов: 86
Ответов: 920
Профиль | | #11
Добавлено: 08.11.04 03:22
nu dyk v spavochnike primer i vse ostal`noe s etogo sajta vzyato....nu da ladno, cheloveku to pomogli? nu i horosho
Номер ответа: 12
Автор ответа:
Surok
Вопросов: 36
Ответов: 106
Профиль | | #12
Добавлено: 08.11.04 03:48
AlphaBlend несколько медленно работает..и процессор грузит если стремиться к плавности исчезновения....
Я пока что развиваю свою идею с изменением цвета текста..получается вроде все чики пуки..))
____________________________________
RGRDS
Номер ответа: 13
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #13
Добавлено: 08.11.04 10:37
Странно, у меня картинка плавно появляется-исчезает плюс показывется видео в этой же программе, ни никто не грузится. Загрузка процессора от 2 до 5% (и то за счёт плеера)
Номер ответа: 14
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #14
Добавлено: 09.11.04 08:19
Surok дело говорит, зря не слушаете. Глупо заморачиваться с прозрачностью, которая еще и не на всех платформах работает, когда все делается гораздо проще и без АПИ (или с АПИ, кому нравится). Чем вам цвет-то не нравится?
Номер ответа: 15
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #15
Добавлено: 09.11.04 08:54
2LOL а у нас вся программа от платформы зависит Все запускается только под винду
ЗЫ
Фанатов 95 сейчас встретить все сложнее...