![]() |
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]() ![]() ![]() |
|
Dmitry_177 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 22.9.2006 Репутация: нет Всего: нет |
Создаю на форме (которая была создана hWindow := CreateWindowEx(WS_EX_LAYERED, WindowName, WindowName, WS_POPUP or WS_SYSMENU, cw_UseDefault, cw_UseDefault, 283, 149, 0, 0, HInstance, nil);) STATIC-окно что бы оно было прозрачным, т.е. Transparent, чтобы прямоугольник был прозрачным кроме текста, но этого почему-то не происходит... Создаю это окно так: CreateWindowEx(WS_EX_TRANSPARENT, 'STATIC', '00:00:00', SS_LEFT or WS_CHILD or WS_VISIBLE, 18, 34, 168, 52, hWindow, 0, HInstance, nil); Почему оно не прозрачное если стоит стиль WS_EX_TRANSPARENT? Нашел в интернете такой пример, чтобы static-окно было Transporent, обработку сообщения WM_CTLCOLORSTATIC:
Все хорошо, действительно текст transparent, но вся проблема в том, что если его изменить, т.е. послать сообщение WM_SETTEXT, то текст пишется поверх уже написанного, т.е. тот который был написан не стирается и получается текст на тексте... Что делать? Подскажите пожалуйста... Это сообщение отредактировал(а) Dmitry_177 - 22.11.2006, 21:34 |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
SetBkMode(WParam, TRANSPARENT);-тут ты явно просишь рисовать текст, не меняя фона
Result := GetStockObject(NULL_BRUSH);- а тут перед прорисовкой предлагаешь "закрасить" фон прозрачной кистью. Вобщем результат и должен быть таким. Если тебе нужна прозрачность слоистого окна то пользуйся или UpdateLayeredWindow или SetLayeredWindowAttributes Первая требует самостоятельной прорисовки всего на битмапе, что дает огромные возможности, но усложняет работу. Вторая позволяет только установить степень прозрачности окна или прозрачный цвет (в VCL обертка именно для нее). Это проще сделать. А от статика можно и вообще отказаться. Это сообщение отредактировал(а) bems - 23.11.2006, 02:09 -------------------- Обижено школьников: 8 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |