информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медSpanning Tree Protocol: недокументированное применение
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[Win32] SetLayeredWindowAttributes/UpdateLayeredWindow 05.11.03 13:21  Число просмотров: 1937
Автор: amirul <Serge> Статус: The Elderman
Отредактировано 05.11.03 13:26  Количество правок: 1
<"чистая" ссылка>
> Как програмно реализовать subj, а то хочу шелл вроде
> LiteStep'a написать (сам незнаю зачем, наверно потому что
> LiteStep глючит на 9x =)
> Желательно сэмпл для ХР и можно ли самому это сделать в 9Х.
Для 9х не знаю. Не уверен, что вообще возможно

Вот пример fade out-а из MSDN-а:

VOID FadeRect(RECT* prc, HDC hdc)
{
    BOOL fFade = FALSE;
    HWND hwnd;
    SIZE size;
    POINT ptSrc = {0, 0};
    BLENDFUNCTION blend;
 
    // Be nice and respect the user's wishes: Do they want the fade?
    SystemParametersInfo(SPI_GETSELECTIONFADE, 0, &fFade, 0);
    if (!fFade)
        return;
    hwnd = CreateWindowEx(WS_EX_LAYERED | // Layered Windows
            WS_EX_TRANSPARENT | // Don't hittest this window
            WS_EX_TOPMOST | WS_EX_TOOLWINDOW, 
            gszFade, gszFade, WS_POPUP | WS_VISIBLE, prc->left,
            prc->top, 0, 0, NULL, (HMENU)0, ghinst, NULL);
    size.cx = prc->right - prc->left;
    size.cy = prc->bottom - prc->top;
    
    blend.BlendOp = AC_SRC_OVER;
    blend.BlendFlags = 0;
    blend.AlphaFormat = 0;
    blend.SourceConstantAlpha = gbAlpha;
 
    UpdateLayeredWindow(hwnd, NULL, NULL, &size, hdc, &ptSrc, 0,
            &blend, ULW_ALPHA);
    // Finally set the animation timer
    SetTimer(hwnd, ID_TIMER, 25, NULL);
}

---
Subsequently, on a timer the window can fade out by providing the new alpha value:

    case WM_TIMER:
        {
            BLENDFUNCTION blend;
            blend.BlendOp = AC_SRC_OVER;
            blend.BlendFlags = 0;
            blend.AlphaFormat = 0;
            blend.SourceConstantAlpha = gbAlpha;
 
            UpdateLayeredWindow(hwnd, NULL, NULL, NULL, NULL, NULL,
                    NULL, &blend, ULW_ALPHA);
            if (gbAlpha > 25) {
                gbAlpha -= 25;
            } else {
                DestroyWindow(hwnd);
            }
        }
        break;

---
<programming>
[Win32] window Transparency in XP 05.11.03 13:11  
Автор: TRESPASSER[CfK] Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Как програмно реализовать subj, а то хочу шелл вроде LiteStep'a написать (сам незнаю зачем, наверно потому что LiteStep глючит на 9x =)
Желательно сэмпл для ХР и можно ли самому это сделать в 9Х.
[Win32] SetLayeredWindowAttributes/UpdateLayeredWindow 05.11.03 13:21  
Автор: amirul <Serge> Статус: The Elderman
Отредактировано 05.11.03 13:26  Количество правок: 1
<"чистая" ссылка>
> Как програмно реализовать subj, а то хочу шелл вроде
> LiteStep'a написать (сам незнаю зачем, наверно потому что
> LiteStep глючит на 9x =)
> Желательно сэмпл для ХР и можно ли самому это сделать в 9Х.
Для 9х не знаю. Не уверен, что вообще возможно

Вот пример fade out-а из MSDN-а:

VOID FadeRect(RECT* prc, HDC hdc)
{
    BOOL fFade = FALSE;
    HWND hwnd;
    SIZE size;
    POINT ptSrc = {0, 0};
    BLENDFUNCTION blend;
 
    // Be nice and respect the user's wishes: Do they want the fade?
    SystemParametersInfo(SPI_GETSELECTIONFADE, 0, &fFade, 0);
    if (!fFade)
        return;
    hwnd = CreateWindowEx(WS_EX_LAYERED | // Layered Windows
            WS_EX_TRANSPARENT | // Don't hittest this window
            WS_EX_TOPMOST | WS_EX_TOOLWINDOW, 
            gszFade, gszFade, WS_POPUP | WS_VISIBLE, prc->left,
            prc->top, 0, 0, NULL, (HMENU)0, ghinst, NULL);
    size.cx = prc->right - prc->left;
    size.cy = prc->bottom - prc->top;
    
    blend.BlendOp = AC_SRC_OVER;
    blend.BlendFlags = 0;
    blend.AlphaFormat = 0;
    blend.SourceConstantAlpha = gbAlpha;
 
    UpdateLayeredWindow(hwnd, NULL, NULL, &size, hdc, &ptSrc, 0,
            &blend, ULW_ALPHA);
    // Finally set the animation timer
    SetTimer(hwnd, ID_TIMER, 25, NULL);
}

---
Subsequently, on a timer the window can fade out by providing the new alpha value:

    case WM_TIMER:
        {
            BLENDFUNCTION blend;
            blend.BlendOp = AC_SRC_OVER;
            blend.BlendFlags = 0;
            blend.AlphaFormat = 0;
            blend.SourceConstantAlpha = gbAlpha;
 
            UpdateLayeredWindow(hwnd, NULL, NULL, NULL, NULL, NULL,
                    NULL, &blend, ULW_ALPHA);
            if (gbAlpha > 25) {
                gbAlpha -= 25;
            } else {
                DestroyWindow(hwnd);
            }
        }
        break;

---
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach