
Быстрый поиск
Введите фрагмент названия статьи для поиска

Окна нестандартной формы на Ассемблере. Часть 2
24.06.2009 | Категория: Образ мышления: Assembler | Автор: ManHunter
В первой части статьи я рассказал как создавать окна нестандартной формы при помощи регионов. У этого способа есть один большой недостаток: создаваемые окна так или иначе состоят из четких геометрических форм. Но высший пилотаж - это окна в форме картинок, и сейчас я расскажу как они делаются. Сперва немного теоретических выкладок. В графическом файле формата BMP информация о картинке хранится в растровом виде, то есть каждый пиксел описан определенным цветом. Рекомендую внимательно прочитать документацию о формате BMP-файла, так как есть несколько важных моментов. Создание окна нестандартной формы на основе растровой картинки заключается в наложении изображения на диалоговое окно и удалении всех его регионов, в которых находятся точки определенного цвета. Этот цвет мы будем считать "прозрачным", потому что настоящую прозрачность обычный формат BMP не поддерживает. А удалять отдельные регионы мы уже умеем.Итак, берем нужную картинку и накладываем ее на какой-нибудь однородный цветной фон, причем цвет фона не должен присутствовать на основной картинке. Можно добавить надпись, но главное чтобы границы всех элементов композиции были четкими и не сливались с фоном. Получится примерно следующее:

Картинка для окна
Картинку надо сохранить в формате BMP, с глубиной цвета 8 бит. Это очень важно, так как в этом случае количество цветов в палитре не превышает 256, а каждая точка описывается ровно одним байтом. Поскольку картинка будет накладываться на диалоговое окно, то и хранить ее надо будет в ресурсах. Тут есть важная особенность: в ресурсах картинка хранится без 14-байтного заголовка BITMAPFILEHEADER и все смещения считаются сразу же от начала блока BITMAPINFOHEADER.
Читать статью целиком »
Просмотров: 7685 | Комментариев: 11

Окна нестандартной формы на Ассемблере. Часть 1
22.06.2009 | Категория: Образ мышления: Assembler | Автор: ManHunter
Фигурная резьба по деревянным окнам - старинное народное творчество. А в нашем 21-м веке народным творчеством будет резьба по окнам Windows. При умелом использовании это станет стильным украшением для ваших приложений, добавив им привлекательности.Форма окна определяется особыми структурами, называемыми регионами. Они могут быть прямоугольной формы, закругленной, эллиптической и многоугольной. Весь принцип работы с регионами сводится к следующему. Сперва создается главный регион, равный по размерам основному диалоговому окну, затем создаются дополнительные регионы нужного размера и накладываются на него с нужной битовой маской. Режимы наложения определяют будет ли новый регион удален из основного, или же наоборот добавлен. Размер главного региона лучше всего рассчитывать из результатов функции GetClientRect, вызванной с хэндлом нужного диалогового окна. Наложение регионов выполняется функцией CombineRgn, возможные режимы наложения смотрите в официальной документации. Все действия выполняются на этапе инициализации окна по событию WM_INITDIALOG.
Code (Assembler) : Убрать нумерацию
- ; Сегмент данных
- section '.data' data readable writeable
- hRMain dd ? ; Хэндл главного региона окна
- coord RECT ; Координаты окна для вычисления размера региона
- ...
Читать статью целиком »
Просмотров: 7247 | Комментариев: 1

Готовим казан-кебаб
21.06.2009 | Категория: А еще я туда ем! | Автор: ManHunter

Казан-кебаб
В казане можно готовить не только плов, а еще много других интересных блюд. Например, казан-кебаб (переводится примерно как "мясо, приготовленное в казане"). Вроде бы простой рецепт, но почему-то получается гораздо вкуснее, чем в обычной сковородке или кастрюле.
Читать статью целиком »
Просмотров: 23492 | Комментариев: 21

Исследование защиты программы WinSnap
18.06.2009 | Категория: Темная сторона Силы | Автор: ManHunter

Скриншот программы WinSnap
WinSnap от NTWind Software - удобная программа для создания скриншотов. От множества аналогов отличается тем, что корректно захватывает окна непрямоугольной формы, позволяет сразу же добавлять эффект тени, наносить водяные знаки на изображение, захватывать несколько последовательных окон, а также имеет другие полезные функции, которых нет у конкурентов. Но в пробной версии показывает всякие наг-скрины и маркирует все создаваемые скриншоты своим логотипом. Для исследования защиты нам потребуется дизассемблер и дистрибутив, на момент публикации последняя версия WinSnap 3.0.8 от мая 2009 года.
Читать статью целиком »
Просмотров: 5916 | Комментариев: 12

Фестиваль "Рокгерой" в клубе "Plan B"
17.06.2009 | Категория: Жизнь в оффлайне | Автор: ManHunter

Фестиваль "Рокгерой" в клубе "Plan B"
Наконец-то выбралась из студийного подполья моя любимая группа группа "Dark Princess", чтобы принять участие в фестивале "Рокгерой". Сейчас они как раз записывают новый альбом, так что с активной концертной деятельностью временно притормозили. Вообще сам формат фестиваля "Рокгерой" больше склонен в сторону альтернативы, к которой я чуть более чем равнодушен, поэтому сегодня мои комментарии к остальным выступавшим группам будут краткими.
Читать статью целиком »
Просмотров: 3692 | Комментариев: 4
