Форум программистов CODEBY.NET Хостинг в Беларуси — Active Technologies

Разработка бизнес сайтов

Нужны клиенты? Тогда сюда быстрее...
X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )




> Прозрачность окон в ОС Windows
biz
Вставить ник
сообщение 16:04:2008, 08:01
Цитата Ответить 


Новенький
Иконка группы

Группа: Новенький
Сообщений: 45
Регистрация: 15:04:2008
Пользователь №: 16 634



Репутация:   0  


Хотелось бы разъяснить вопрос прозрачности окон в ОС Windows... Что и как проще всего зделать.
Подняться вверх 
 
Сообщение #1
 
Новая тема 
Ответов (1 - 1)
biz
Вставить ник
сообщение 16:04:2008, 10:01
Цитата Ответить 


Новенький
Иконка группы

Группа: Новенький
Сообщений: 45
Регистрация: 15:04:2008
Пользователь №: 16 634



Репутация:   0  


Публикую культовый способ (т.е. его часть):
    ...
    HBITMAP        hDIB;
    long *            p_dib;

    POINT            ptSrc;
    POINT            ptWindow;
    SIZE            szWindow;
    HDC            hDCMemory;
    BLENDFUNCTION    blend;

    ZeroMemory( &bmi, sizeof( BITMAPINFO ) );
    bmi.bmiHeader.biSize        = sizeof( BITMAPINFOHEADER );
    bmi.bmiHeader.biWidth        = 200;   // ширина окна
    bmi.bmiHeader.biHeight        = -100;  // высота (минус нужен для того, чтобы изображение бфло не upside-down)
    bmi.bmiHeader.biPlanes        = 1;
    bmi.bmiHeader.biBitCount    = 32;
    bmi.bmiHeader.biCompression    = BI_RGB;
    hDIB = CreateDIBSection( GetDC( hWnd ), &bmi, DIB_RGB_COLORS, (void **)&p_dib, NULL, 0 );

    ... заполняем p_dib прозрачным изображением ...

    ptSrc.x = 0;
    ptSrc.y = 0;
    ptWindow.x = x;
    ptWindow.y = y;
    szWindow.cx = width;
    szWindow.cy = height;

    hDCMemory = CreateCompatibleDC( NULL );
    SelectObject( hDCMemory, hDIB );

    blend.BlendOp            = AC_SRC_OVER;
    blend.BlendFlags        = 0;
    blend.SourceConstantAlpha    = 255;   // общая прозрачность окна
    blend.AlphaFormat        = AC_SRC_ALPHA;

    UpdateLayeredWindow( hWnd, NULL, &ptWindow, &szWindow, hDCMemory, &ptSrc, 0, &blend, ULW_ALPHA );
    ...
Подняться вверх 
 
Сообщение #2


Быстрый ответ  Ответить  Новая тема 

> Быстрый ответ
Полужирный
Курсив
Подчеркнутый
Вставить изображение
Смайлики
Цитата
Код
 
 Отправлять уведомления об ответах на e-mail |  Включить смайлики |  Добавить подпись |  AJAX?
   

 

RSS Текстовая версия Сейчас: 12:10:2008 - 00:31

с нами можно связаться по:
телефону: +375-(29)-632-60-67
e-mail:info@codeby.net