Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Прозрачность формы (как сделать)

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Kaplinale



Зарегистрирован: 27.05.2005
Сообщения: 102
Откуда: г. Нижний Новгород

СообщениеДобавлено: Вт Авг 16 2005 13:38    Заголовок сообщения: Прозрачность формы (как сделать) Ответить с цитатой

Подскажите пожалуйста, как сделать форму прозрачной (CBuilder)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
InStream



Зарегистрирован: 23.06.2005
Сообщения: 8

СообщениеДобавлено: Вт Авг 16 2005 14:31    Заголовок сообщения: Ответить с цитатой

Апи функции (код под вб), функции работают только под 2000/XP
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long

Public Const LWA_ALPHA = &H2
Public Const GWL_EXSTYLE = (-20)
Public Const WS_EX_LAYERED = &H80000

Private Sub MixWindow(FormName As Form)

If Not isTransparent Then
isTransparent = True
Ret = GetWindowLong(FormName.hWnd, GWL_EXSTYLE)
DefRet=Ret 'точно не помню, но зачем-то было нужно Smile
Ret = Ret Or WS_EX_LAYERED
SetWindowLong FormName.hWnd, GWL_EXSTYLE, Ret
SetLayeredWindowAttributes FormName.hWnd, 0, 0, LWA_ALPHA 'делает окно полность прозрачным
For X = 0 To 255 Step 10 'Постепенно выводит окно из прозрачности (Микс), где Х уровень текущей прозрачности
SetLayeredWindowAttributes FormName.hWnd, 0, X, LWA_ALPHA
DoEvents
Next X
SetLayeredWindowAttributes FormName.hWnd, 0, 255, LWA_ALPHA
SetWindowLong FormName.hWnd, GWL_EXSTYLE, DefRet 'отменяет прозрачность и возвращает окно в исходное состояние

End If

End Sub
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Wladimir



Зарегистрирован: 02.03.2005
Сообщения: 150
Откуда: Ставропольский край

СообщениеДобавлено: Вт Авг 16 2005 15:45    Заголовок сообщения: Ответить с цитатой

Form1->AlphaBlend = true;
Form1->AlphaBlendValue = число 0..255;
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Kaplinale



Зарегистрирован: 27.05.2005
Сообщения: 102
Откуда: г. Нижний Новгород

СообщениеДобавлено: Вт Авг 16 2005 15:53    Заголовок сообщения: Ответить с цитатой

Thanks всем Laughing
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Kaplinale



Зарегистрирован: 27.05.2005
Сообщения: 102
Откуда: г. Нижний Новгород

СообщениеДобавлено: Вт Авг 16 2005 15:53    Заголовок сообщения: Ответить с цитатой

Thanks всем Laughing
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Kaplinale



Зарегистрирован: 27.05.2005
Сообщения: 102
Откуда: г. Нижний Новгород

СообщениеДобавлено: Вт Авг 16 2005 15:56    Заголовок сообщения: Ответить с цитатой

Thanks всем Laughing
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Kaplinale



Зарегистрирован: 27.05.2005
Сообщения: 102
Откуда: г. Нижний Новгород

СообщениеДобавлено: Чт Авг 18 2005 09:25    Заголовок сообщения: Ответить с цитатой

Wladimir писал(а):
Form1->AlphaBlend = true;
Form1->AlphaBlendValue = число 0..255;


НЕ РАБОТАЕТ Crying or Very sad Crying or Very sad Crying or Very sad
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Kaplinale



Зарегистрирован: 27.05.2005
Сообщения: 102
Откуда: г. Нижний Новгород

СообщениеДобавлено: Чт Авг 18 2005 09:26    Заголовок сообщения: Ответить с цитатой

Wladimir писал(а):
Form1->AlphaBlend = true;
Form1->AlphaBlendValue = число 0..255;


НЕ РАБОТАЕТ Crying or Very sad Crying or Very sad Crying or Very sad
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Netron



Зарегистрирован: 10.12.2004
Сообщения: 7
Откуда: Курск

СообщениеДобавлено: Чт Авг 18 2005 12:49    Заголовок сообщения: Ответить с цитатой

хм...а Вам обязательно делать её прозрачной? можь проще невидимой или не доступной?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Kaplinale



Зарегистрирован: 27.05.2005
Сообщения: 102
Откуда: г. Нижний Новгород

СообщениеДобавлено: Чт Авг 18 2005 13:09    Заголовок сообщения: Ответить с цитатой

Ну не совсем полностью прозрачной, хотя бы на половину.
Код который показал Wladimir не хочет работать в CBuilder 5 версии.
Мож конечно я какие нибудь библиотеки не подключаю.
Короче: есть форма, на ней есть графические кнопки, менюшки и т.д.
Надо сделать так, как например сделано в BsPlayer'e. Но я тут покумекал, пришел к выводу что можно все сделать регионами (HRGN) (обыкновенная теория множеств).
Но все же интересно, как ее сделать прозрачной(Хотябы на половину).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
gooamoko



Зарегистрирован: 26.12.2003
Сообщения: 98

СообщениеДобавлено: Пт Авг 26 2005 05:48    Заголовок сообщения: Ответить с цитатой

Код не работает скорее всего потому, что AlphaBlend появился только в 6-й версии.
_________________
Что один сделал, другой завсегда сломать сможет
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...