Прозрачные окна - это реально!
Вложений: 1
Всем доброго времени суток! Давно хотелось сделать прозрачные окна или окна нестандартной формы в Blitz3d :) Здесь небольшой примерчик с описанием этого процесса. Описание в комментариях *.bb файла. Знающим просьба не кричать в один голос, мол изобрел трехколесный самокат. Данная тема для тех, кто (так же, как я недавно), хочет сделать, но не получается. К сожалению, нарямую всеми функциями API оперировать не удалось, пришлось использовать в данном примере либу WinBlitz3d. Но в дальнейшем я все равно разберусь в данном вопросе.
Итак. В архиве все dll & decls кидаем в папку userlibs, также на всякий случай кидаем туда же user32.dll прямиком из вашей винды (windows\system32\user32.dll). А теперь можно и запустить пример. АХТУНГ! Делал на win7 x86! На др. версиях винды не тестил, так что возможны глюки. В общем, кому я действительно помог, жмем кнопочку "Полезно". Думаю, мне пора "всплывать" из AnyKey`щиков :) Ах да, забыл.. формат изображения - только BMP, цвет маски - черный (RGB 0,0,0) |
Ответ: Прозрачные окна - это реально!
Хмм, а нельзя ли не по маске, а с труЪ-прозрачностью (навроде PNG), а то уже рваные края давненько не в моде.
Вот если б ты это сделал и оформил в удобный инклуд, был бы респект! |
Ответ: Прозрачные окна - это реально!
Цитата:
|
Ответ: Прозрачные окна - это реально!
Вложений: 1
Итак, ползал я денно и ночно по лабиринтам gdi32.dll и gdiplus.dll, но ни одной "ниточки Ариадны" ни самостоятельно, ни в гуглах не нашел :)
Поэтому решил схитрить. Мной был найден пример на Visual Basic, увы на блиц полностью синтаксис я перевести не смог. По примеру я сделал VB-екзешник (в архиве как Splashscreen.exe) Работает все ну очень просто: в bb файле даже есть функция :) Через неё Splashscreen.exe запускается с параметром, идентичным названию изображения. В архиве 3 картинки, специально мной отобранные для демонстрации. Splashscreen.exe закрывается двойным кликом по картинке! ! Косяк - большие png глючат! Это надо в коде VB исправлять. В ближайшем времени исправлю, просто накидал на скорую руку, не хотел заставлять вас долго ждать :) Недоработки: 1. Не реализованы координаты изображения 2. Пока что можно загружать одну картинку, вторая уже будет дубликатом Splashscreen.exe 3. Не реализовано всплывание/затухание 4. Не реализована анимация (не обещаю, но возможно смогу сделать) Достоинства: 1. Splashscreen.exe можно вызывать из любого языка программирования 2. Никаких dll и decls :) Надеюсь, вам понравится, в дальнейшем буду улучшать сей проектик ;) |
Ответ: Прозрачные окна - это реально!
а можно скомпилированную версию в комплекте?
|
Ответ: Прозрачные окна - это реально!
Вложений: 1
Конечно можно :)
Хоть отпишитесь кто-нить, стоит ли мне продолжать в данном направлении? А то поди зря стараюсь! |
Ответ: Прозрачные окна - это реально!
хм. а вот это уже очень интересно. сам интересовался способами вывода окошка с полупрозрачной альфой по опасити. Но чо то так и не добил :) Не поделишься технологией?
|
Ответ: Прозрачные окна - это реально!
Ну... как я писал, полностью блицем мне это реализовать не удалось, пришлось подключать Visual Basic. Просто gdi32.dll и gdiplus.dll используют структуры (например, BITMAPINFOHEADER,RGBQUAD,POINTAPI и т.д.), которые через Blitz я ну никак не мог выразить. видел примеры и на Си и на Дельфи, но VB мне как-то поближе. Нашел пример на VB, сделал по нему, добавил поддержку скана коммандной строки (то есть, чтобы Splashscreen.exe понимал с какими параметрами его запускают). Пока сделал лишь один параметр, содержащий имя PNG файла. Как планирую развивать проект в дальнейшем, написано выше. Добавлю поддержку нескольких png одновременно, параметры координат PNG, время затухания/всплывания/задержки, возможно даже получится сделать анимацию на основе стрипов или файлокадров. Вот :)
|
Ответ: Прозрачные окна - это реально!
Вложений: 1
Итак...
Я был вынужден написать dll, а то со вторым экзешником и командной строкой какое-то порно получилось :) Вот вам версия 1.1 на ваш страшный суд :) Синтаксис команд упрощен до необходимого минимума. Реализовано: 1. Поддержка png-окна Блицем (больше никаких левых екзешников!) 2. Реализованы координаты изображений (пока что лишь начальные, Moving сделаю позже) 3. Да, вы не ослышались, изображений. Поддержка нескольких изображений! :compl: 4. Возможно менять общий уровень прозрачности окна (т.е. всплывание/затухание либо полупрозрачное окно), при этом маска сохраняется пока что все, выкладываю новую версию моего скромного творчества, побалуйтесь :) dll и decls в комплекте. Думаю, не нужно обьяснять, что с ними делать. Скомпиленная версия тоже в комплекте :) В комментариях присутствует расшифровка синтаксиса. ах, да, длл и decls, использумые в моей 1й версии (которая еще с BMP была) вам не нужны! :) В следующих версиях попытаюсь расширить функционал сей либы, с анимацией пока напряги, возможно попробую другие возможности :) Просьба отписаться, понравилось ли вам, и нет ли багов на WinXp и Win7 x64! |
Ответ: Прозрачные окна - это реально!
Win7 x86 Все ок пашет, понравились игральные кости :)
|
Ответ: Прозрачные окна - это реально!
Вчера сделал Moving и Scaling(пропорциональный и непропорциональный), но Scaling кривой, увеличение получилось относительное и увеличивается не относительно центра. Возможно придется реконструировать либу либо усложнять синтаксис. Одно уже точно могу сказать - придется добавлять команды возврата значений высоты и ширины (черновое название PngWidth и PngHeight). С другой стороны, постараюсь упростить код посредством функций в самом Blitz3d. p.s. Кстати, картинки не мои :) Просто нашёл в нете наиболее наглядные :) |
Ответ: Прозрачные окна - это реально!
Win7 64. работает.
|
Ответ: Прозрачные окна - это реально!
Красавчик!! Респект тебе! )
А чтоб из Any'кейщика вылезти, над просто немоного побольше писать сообщений ;) |
Ответ: Прозрачные окна - это реально!
|
Часовой пояс GMT +4, время: 10:23. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot