Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Медленное исчезновение... Добавлено: 04.11.04 22:37  

Автор вопроса:  Surok
На форме размещен текст...Нужна технология того, чтобы при нажатии на кнопку етот текст медленно исчез, а при повторном нажатии снова появился.
Возможно ли ето сделать...
Запросил поиск по форуму, вроде вопрос с прозрачностью контролов никто не решил, че делать?

Ответить

  Ответы Всего ответов: 16  

Номер ответа: 1
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #1 Добавлено: 04.11.04 22:54
Я делал такое, только не с текстом, а с картинкой: она плавно проявлялась и плавно же исчезала.

Sub Run_Blending()
 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-сайт: barsik.newmail.ru
 Профиль | | #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-сайт: barsik.newmail.ru
 Профиль | | #4
Добавлено: 06.11.04 13:27
"ширмой"

ну я думаю так лучше будет...

Ответить

Номер ответа: 5
Автор ответа:
 Surok



Вопросов: 36
Ответов: 106
 Профиль | | #5 Добавлено: 08.11.04 01:08
AlphaBlend - это API - функция

Осталось только еще подсказать декларацию етой функции, а то я че-то найти ее описание не могу..

Я данный вопрос решил несколко иначе:
-путем изменения цвета тескта пока он не сравняется с фоном...
цвет изменял через 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
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

· 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
Забыл про структуру ну и заодно пример ещё один:

Const AC_SRC_OVER = &H00
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-сайт: hw.t-k.ru
 Профиль | | #15
Добавлено: 09.11.04 08:54
2LOL а у нас вся программа от платформы зависит ;) Все запускается только под винду ;)

ЗЫ
Фанатов 95 сейчас встретить все сложнее...

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам