Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > WS_EX_LAYERED


Автор: RapMan 25.3.2010, 10:43
Доброе время суток!

У меня проблема, я создаю окно с установленным WS_EX_LAYERED, потом с помощью SetLayeredWindowAttributes я хочу вырезать цвет, на Windows 7 все работает нормально, но на XP - нет, а если вырезать черный цвет - даже на XP работает.

Код

    hWnd = CreateWindowEx( WS_EX_TOPMOST | WS_EX_LAYERED,
                                               CLASS_NAME,
                                               L"Just Test",
                                               WS_POPUP,
                                               (GetSystemMetrics( SM_CXSCREEN ) - WINDOW_WIDTH) / 2,
                                               (GetSystemMetrics( SM_CYSCREEN ) - WINDOW_HEIGHT) / 2,
                                               WINDOW_WIDTH,
                                               WINDOW_HEIGHT,
                                               (HWND)NULL,
                                               (HMENU)NULL,
                                               hInst,
                                               NULL );

*****************************************************************

SetLayeredWindowAttributes( hWnd, RGB( 100, 100, 100 ), 0, LWA_COLORKEY )


Почему на XP не работает любой цвета кроме черного?
Всем заранее спасибо.

Автор: GremlinProg 29.3.2010, 09:05
Цитата(RapMan @  25.3.2010,  12:43 Найти цитируемый пост)
Почему на XP не работает любой цвета кроме черного?

полагаю потому, что производится неправильная закраска окна, ее и нужно показывать,
если это какая-то картинка, то нужно понимать, что полутона  WS_EX_LAYERED не видит,
прозрачный цвет  в окне должен по крайней мере присутствовать в каком-то виде

пример использования WS_EX_LAYERED: http://forum.vingrad.ru/forum/topic-271155/hl/setlayeredwindowattributes/index.html
тут я использовал красный и серый

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)