|
18 / 0 / 0
Регистрация: 03.07.2011
Сообщений: 64
|
|
Создание dll для поддержки скинов05.07.2011, 12:41. Показов 9329. Ответов 74
Метки нет (Все метки)
Добрый день, понадобилась помощь в разработке dll для поддержки скинов в других ЯП, сам пишу на AutoIt но там не очень хорошо создавать скины,вся графика находится снаружи скрипта и защиты ни какой, пробую написать на PureBasic, там есть функции по созданию PAK архивов, по моему от туда можно загружать графику и одевать окно не извлекая ни чего из архива, листаю справку по PureBasic 2ой день, пока не очень понятно,так как переход с одного языка на другой сложноват, прошу помощи у знающих людей в создании dll, с чего начать и как двигаться дальше, если есть примеры, хотелось бы очень увидеть, заранее спасибо.
0
|
|
| 05.07.2011, 12:41 | |
|
Ответы с готовыми решениями:
74
Использование скинов для приложения Как установить классы скинов для c# Компонент для создания шкурок (скинов) |
|
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
|
|||||||||||||
| 30.12.2011, 14:12 | |||||||||||||
|
Окно перетаскивается за картинку, правда, лучше заменить эту строку
1
|
|||||||||||||
|
18 / 0 / 0
Регистрация: 03.07.2011
Сообщений: 64
|
|
| 30.12.2011, 16:14 [ТС] | |
|
Да перемещается, значит такой вариант можно использовать...есть ещё 2 проблемы, титл печатается на окне только когда окно прорисовывается, а при появлении окна текста нету, я добавил обработку #WM_NOTIFY и на окне всегда есть текст, правдо он всегда ресуется поверх придедущего текста если получает сообщения #WM_PAINT и #WM_NOTIFY, как это сделать корректно?
А 2я проблема, я создал на заголовке кнопку (Картинку) Close, но она не реагирует на клик и за неё тоже можно перемещать окно.
0
|
|
|
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
|
|||
| 30.12.2011, 17:29 | |||
|
Можно упростить задачу если поверх рисунка поместить дочернее окно (Static) с прозрачным фоном, нулевой кистью и с расширенным стилем #WS_EX_COMPOSITED. В этот Static нужно выводить текст заголовка окна. По сути, это обычный рисунок и чтобы его "оживить", должны быть обработчики события перемещения мышки над ним и клика левой кнопкой мышки по нему.
0
|
|||
|
18 / 0 / 0
Регистрация: 03.07.2011
Сообщений: 64
|
|
| 30.12.2011, 18:27 [ТС] | |
|
В данном коде нет, но я его писал, не работал, и примеры смотрел, делал, и всё равно не работал, наверное 1я, 2я и 3я картинка почему то перекрывают остальные, чего по сути и не должно быть.
0
|
|
|
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
|
|||||||
| 30.12.2011, 18:54 | |||||||
1
|
|||||||
|
18 / 0 / 0
Регистрация: 03.07.2011
Сообщений: 64
|
|
| 30.12.2011, 19:10 [ТС] | |
|
Спасибо, работает, но сразу закрывается при нажатии, а в обычных окнах, если нажали на кнопку и отпустили лкм и если курсор находится над этой кнопкой то только тогда должна сработать, иначе я не буду успевать картинку менять для визуального представления
0
|
|
|
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
|
||
| 30.12.2011, 19:46 | ||
|
А чтобы работало как нужно, следует сделать немного по другому. На ум приходит вариант с вклиниванием в функцию контрола hWnd_Close и обработка кликов мышкой и перемещением мышки над контролом. На словах долго объяснять, посмотрите пример из архива, который демонстрирует вышесказанное.
1
|
||
|
18 / 0 / 0
Регистрация: 03.07.2011
Сообщений: 64
|
|
| 30.12.2011, 20:09 [ТС] | |
|
Супер, спасибо, попробую разобраться
0
|
|
|
18 / 0 / 0
Регистрация: 03.07.2011
Сообщений: 64
|
|
| 02.01.2012, 22:40 [ТС] | |
|
Вроде с кнопкой всё понятно, но лучше сразу может придумать как упаковать все картинки в один файл, и потом их извлекать и применять, пока не поздно???
0
|
|
|
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
|
||
| 03.01.2012, 02:02 | ||
|
Если картинки должны хранится внутри DLL, то тогда нужно собрать их всех в один файл (естественно что кроме самих рисунков нужно хранить инфу о размере файлов), сжать его с помощью PackMemory() и добавить в DLL с помощью IncludeBinary. При загрузке DLL, распаковка выполняется функцией UnpackMemory() и затем производится процесс разложения данных на отдельные рисунки.
1
|
||
|
18 / 0 / 0
Регистрация: 03.07.2011
Сообщений: 64
|
|
| 03.01.2012, 14:55 [ТС] | |
|
Нужно именно в отдельном файле и как Вы сказали с информацией о размерах
Добавлено через 12 часов 22 минуты C файлами понятно, я уже тестировал и упаковку и распаковку и вывод в окно из памяти, а как быть с информацией о размерах?
0
|
|
|
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
|
|
| 03.01.2012, 15:10 | |
|
Если упаковка / распаковка выполняется с помощью функций CreatePack() и OpenPack(), то при упаковке, размер файла вычисляется функцией AddPackFile() и записывается в архив. При распаковке, размер можно получить с помощью функции PackFileSize().
0
|
|
|
18 / 0 / 0
Регистрация: 03.07.2011
Сообщений: 64
|
|
| 03.01.2012, 15:21 [ТС] | |
|
Не, не стой инфой о размерах, то есть хотя бы например создать INI файл где будут указаны первоначальные размеры всех картинок на окне, потом например его можно тоже добавить в pack но после распаковки мне даётся адрес в памяти где этот файл INI находится, как его прочитать из памяти?
0
|
|
|
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
|
|
| 03.01.2012, 15:54 | |
|
INI файл нужно сохранить на диск и работать с ним с помощью функций библиотеки Preference.
Если нежелательно создавать файл на диске, то можно хранить информацию, скажем, в XML формате. Данные можно экспортировать в память функцией ExportXML() и загрузить из памяти функцией CatchXML().
1
|
|
|
18 / 0 / 0
Регистрация: 03.07.2011
Сообщений: 64
|
|
| 03.01.2012, 15:56 [ТС] | |
|
Спасибо, XML в принципе не критичен.
0
|
|
| 03.01.2012, 15:56 | |
|
Установка скинов для Visual Studio Создание dll для Hook' ов Создание dll в delphi для 1С создание dll для подключения к бд oracle
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|