Форум программистов, компьютерный форум, киберфорум
Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.76/42: Рейтинг темы: голосов - 42, средняя оценка - 4.76
18 / 0 / 0
Регистрация: 03.07.2011
Сообщений: 64

Создание dll для поддержки скинов

05.07.2011, 12:41. Показов 9329. Ответов 74
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, понадобилась помощь в разработке dll для поддержки скинов в других ЯП, сам пишу на AutoIt но там не очень хорошо создавать скины,вся графика находится снаружи скрипта и защиты ни какой, пробую написать на PureBasic, там есть функции по созданию PAK архивов, по моему от туда можно загружать графику и одевать окно не извлекая ни чего из архива, листаю справку по PureBasic 2ой день, пока не очень понятно,так как переход с одного языка на другой сложноват, прошу помощи у знающих людей в создании dll, с чего начать и как двигаться дальше, если есть примеры, хотелось бы очень увидеть, заранее спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.07.2011, 12:41
Ответы с готовыми решениями:

Использование скинов для приложения
Приветик всем!!! Как получить шаблон 2007 для своей программы

Как установить классы скинов для c#
Помогите пожалуйста, мне нужно установить классы скинов на C#, как это можно реализовать, просто новичек в этом деле, и если кто может,...

Компонент для создания шкурок (скинов)
сам не знаю что хочу, но гдето видел некто не подскажет))) вообщем вот: Где и что скачать,как установить (вроде) "модуля" для...

74
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
30.12.2011, 14:12
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от SergeyA Посмотреть сообщение
и сразу же вопрос, как сделать перемещение окна мышкой за 1ю, 2ю и 3ю картинку?
Цитата Сообщение от SergeyA Посмотреть сообщение
Не получается....
Что не получается?
Окно перетаскивается за картинку, правда, лучше заменить эту строку
Code
1
SendMessage_(hWnd, #WM_SYSCOMMAND, $F009, 0)
на эту.
Code
1
SendMessage_(hWnd,#WM_NCLBUTTONDOWN, #HTCAPTION,0)
1
18 / 0 / 0
Регистрация: 03.07.2011
Сообщений: 64
30.12.2011, 16:14  [ТС]
Да перемещается, значит такой вариант можно использовать...есть ещё 2 проблемы, титл печатается на окне только когда окно прорисовывается, а при появлении окна текста нету, я добавил обработку #WM_NOTIFY и на окне всегда есть текст, правдо он всегда ресуется поверх придедущего текста если получает сообщения #WM_PAINT и #WM_NOTIFY, как это сделать корректно?

А 2я проблема, я создал на заголовке кнопку (Картинку) Close, но она не реагирует на клик и за неё тоже можно перемещать окно.
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
30.12.2011, 17:29
Цитата Сообщение от SergeyA Посмотреть сообщение
есть ещё 2 проблемы, титл печатается на окне только когда окно прорисовывается
Нужно печать текст после окончания прорисовки рисунка заголовка окна.
Можно упростить задачу если поверх рисунка поместить дочернее окно (Static) с прозрачным фоном, нулевой кистью и с расширенным стилем #WS_EX_COMPOSITED. В этот Static нужно выводить текст заголовка окна.


Цитата Сообщение от SergeyA Посмотреть сообщение
А 2я проблема, я создал на заголовке кнопку (Картинку) Close, но она не реагирует на клик
А написал код реакции на клик?
По сути, это обычный рисунок и чтобы его "оживить", должны быть обработчики события перемещения мышки над ним и клика левой кнопкой мышки по нему.
0
18 / 0 / 0
Регистрация: 03.07.2011
Сообщений: 64
30.12.2011, 18:27  [ТС]
В данном коде нет, но я его писал, не работал, и примеры смотрел, делал, и всё равно не работал, наверное 1я, 2я и 3я картинка почему то перекрывают остальные, чего по сути и не должно быть.
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
30.12.2011, 18:54
Цитата Сообщение от SergeyA Посмотреть сообщение
В данном коде нет, но я его писал, не работал, и примеры смотрел, делал, и всё равно не работал
В процедуру обработки событий добавьте эти строки.
Code
1
2
3
4
5
    Case #WM_COMMAND
      If lParam = hWnd_Close
        CallWindowProc_(*WindowProc, hWnd, #WM_CLOSE, 0, 0)
        ProcedureReturn 0
      EndIf
А в контрол-кнопку закрытия окна, добавьте стиль #SS_NOTIFY.
1
18 / 0 / 0
Регистрация: 03.07.2011
Сообщений: 64
30.12.2011, 19:10  [ТС]
Спасибо, работает, но сразу закрывается при нажатии, а в обычных окнах, если нажали на кнопку и отпустили лкм и если курсор находится над этой кнопкой то только тогда должна сработать, иначе я не буду успевать картинку менять для визуального представления
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
30.12.2011, 19:46
Цитата Сообщение от SergeyA Посмотреть сообщение
Спасибо, работает, но сразу закрывается при нажатии, а в обычных окнах, если нажали на кнопку и отпустили лкм и если курсор находится над этой кнопкой то только тогда должна сработать
Я привел простой пример.
А чтобы работало как нужно, следует сделать немного по другому. На ум приходит вариант с вклиниванием в функцию контрола hWnd_Close и обработка кликов мышкой и перемещением мышки над контролом.
На словах долго объяснять, посмотрите пример из архива, который демонстрирует вышесказанное.
Вложения
Тип файла: rar Button.rar (27.6 Кб, 13 просмотров)
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
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
03.01.2012, 02:02
Цитата Сообщение от SergeyA Посмотреть сообщение
лучше сразу может придумать как упаковать все картинки в один файл, и потом их извлекать и применять, пока не поздно
Если файл скинов должен быть отдельно от DLL, то прекрасно подойдут функции CreatePack(), OpenPack() и другие, связанные с ними.
Если картинки должны хранится внутри DLL, то тогда нужно собрать их всех в один файл (естественно что кроме самих рисунков нужно хранить инфу о размере файлов), сжать его с помощью PackMemory() и добавить в DLL с помощью IncludeBinary.
При загрузке DLL, распаковка выполняется функцией UnpackMemory() и затем производится процесс разложения данных на отдельные рисунки.
1
18 / 0 / 0
Регистрация: 03.07.2011
Сообщений: 64
03.01.2012, 14:55  [ТС]
Нужно именно в отдельном файле и как Вы сказали с информацией о размерах

Добавлено через 12 часов 22 минуты
C файлами понятно, я уже тестировал и упаковку и распаковку и вывод в окно из памяти, а как быть с информацией о размерах?
0
PB
Просто прогер
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
PB
Просто прогер
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.01.2012, 15:56

Установка скинов для Visual Studio
Подскажите как ПРАВИЛЬНО устанавливать скины и где их брать?

Создание dll для Hook' ов
подскажите, что нужно прописать в dll файле и основном, чтобы программа считывала нажатия клавиш в блокноте?

Создание dll в delphi для 1С
Есть dll без исходников, для нее есть интерфейс на delphi. Стоит задача подружить эту библиотеку с 1С. На сколько понял с прочитанного в...

создание dll для подключения к бд oracle
Пытаюсь вынести подключение к бд oracle в dll. Подскажите, пожалуйста, как можно вынести строку подключения строка вида: ...

Создание dll для связи бд с API
Здравствуйте!Надо написать dll для связи БД c формой скажем так, единственное что я знаю это подключение к SQL базе с помощью...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
75
Ответ Создать тему
Новые блоги и статьи
Запрет дублирования строк в табличной части
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
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru