
Комментарии 25
Когда там был последний релиз wtl? Лет 11 назад?
И вы написали просто окошко с двумя кнопками и текстовым полем?
Исходники вашего творчества архивом на народ ру? Гитхаб/гитлаб не современно?
Когда там был последний релиз wtl? Лет 11 назад?
А ради кого и чего я должен соблюдать ритуал, типа, использовать фреймворки только новые, даже если они избыточно тяжелые, вроде Qt, для простых пет-проектов?
И вы написали просто окошко с двумя кнопками и текстовым полем?
Да! Но, это вполне решает мои задачи. Считайте ее демо-программой, которая показывает реализацию некоторых неочевидных вещей.
Исходники вашего творчества архивом на народ ру? Гитхаб/гитлаб не современно?
Откровенно говоря, влом разбираться с Гитхабом. Что это меняет? Чем это лучше для меня или для вас?
Откровенно говоря, влом разбираться с Гитхабом. Что это меняет? Чем это лучше для меня или для вас?
Чтобы желающие смогли доработать программу
Чтобы желающие смогли доработать программу
Странное желание. Минусы показывают, что народу тема не интересна. Зачем тогда напрягаться насчет Гитхаба?
Так минусы из-за того, в том числе, что программу неудобно забирать, работать с ней. Вы бы ещё на какой-нибудь ucoz или мегааплоад выложили архивом.
Так минусы из-за того, в том числе, что программу неудобно забирать, работать с ней. Вы бы ещё на какой-нибудь ucoz или мегааплоад выложили архивом.
Для меня это удивительно, потому что, для меня, нет ничего удобней, чем скачать прямую ссылку на zip-файл. Это я и на Гихабе всегда делаю, скачал архив, распаковал вручную, где удобно, в своем каталоге, и работаю с ним. Что может быть лучше, я даже не представляю?! И Яндекс-диск – тоже неудобен?
Допускаю, что если у вас не «Форточки», а Линукс или Мак, то там могут быть нюансы. Однажды мне высказали претензии на pdf-файл справки, для моей старой обучающей программы. Мол, не читается он в Линуксе. Но, откуда мне это знать, если я ничего, кроме Виндоуз, не знаю? Благо, в том случае, я посоветовал использовать встроенную справку, программа была очень простая, что вполне было достаточно.
Чтобы публиковать свои пет-проекты на Гитхабе, я, по крайней мере, должен видеть в этом смысл. Но, если мои пет-проекты никому не интересны, судя по комментариям, то, зачем мне Гитхаб, если лично мне он не нужен?
Хотя, «капля камень точит». Если все начнут настаивать на публикации в Гитхабе, то, «почему бы и да»? Подумаю. Может быть, новые версии своей обучающей системы «L'école» и программы «МедиаТекст» я опубликую там. Они, для меня, более важны. Что касается демо-проектов, то посмотрим.
смотрите прикол на приложении написанном на C# теперь
в 98 было написано на С++ и потом переписали на C#, но прикол в том, что сейчас проект с XML надстройкой и С#/C++, монструозные, можно создать окно на С++ на легси api, окно хотябы точно можно создать
А где у вас собственно WTL используется ? У вас ведь в исходниках ничего от WTL нет?
WTL это https://github.com/Win32-WTL/WTL и диалоги там обычно делаются в редакторе ресурсов VisualStudio и все получается как и во всех Win прогах, поддержка тем тоже вроде под WTL была.
А где у вас собственно WTL используется ? У вас ведь в исходниках ничего от WTL нет? WTL это https://github.com/Win32-WTL/WTL
Собственно, сами h-файлы WTL, которые, по вашей ссылки находятся в папке WTL/Include у меня находятся в общем доступе (C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include)/ В последней версии WTL-10.320 – 20 файлов, общим размером менее полутора Мегабайт. Скачайте их из Интернета и положите в каталог, на который есть ссылки в проекте. Какие проблемы? Зачем стандартные файлы помещать в локальный проект?
и диалоги там обычно делаются в редакторе ресурсов VisualStudio и все получается как и во всех Win прогах, поддержка тем тоже вроде под WTL была.
Диалогами я, практически, не пользуюсь, просто, не люблю их. Мне и прототипы искать было очень тяжело, поскольку все, в том числе ИИ, очень любят диалоги. Компоненты в окнах, наверное, кроме меня никто не использует :) .
Вы опоздали лет на 20. В WTL ковырялись лет 20 назад. Сейчас это никому не интересно.
В Qt кастомный интерфейс делается элементарно, в т.ч. есть готовые компоненты для собственного фрейма окна.
Непонятно, в чем смысл вашей статьи. Возможно, вы хотели пропиарить себя или программу, но сама программа бесполезна. Полезной технической информации для разработчиков статья не несёт. На гитхабе таких бесполезных учебных проектов пруд пруди.
Вот если бы вы написали полноценную статью или библиотеку, как без боли добавить в legacy wtl приложение темную тему, это лично мне было бы интересно.
apply-windows-themes а там же без wtl есть какой-то способ получить доступ к теме
вон внизу легаси вставки может сработает
2vrEIhAajhM тут еще много - просто вал легаси код обзора ), но придётся смотреть все серии чтобы нужное уловить, но я помню он рассказывал о приколах к темам, но это не втл, а просто легаси
Приложение на WTL будет крохотным и не иметь внешних зависимостей.
Да, это сложнее, чем простое формошлепство
Вы опоздали лет на 20. В WTL ковырялись лет 20 назад. Сейчас это никому не интересно.
Мне интересно. Разве этого мало?
В Qt кастомный интерфейс делается элементарно, в т.ч. есть готовые компоненты для собственного фрейма окна.
Ну, да! Программа «MediaDownloaderQt5-5.4.3» занимает «всего лишь» 471 Мегабайт, качает, без спроса, кучу файлов. Интерфейс – ужасен – сделан в дремучем диалоговом стиле, который я видел еще 25 лет назад.
А что она делает? Да тоже самое – скачивает плейлисты и каналы с Ютуба. И, в чём ее преимущество? – Настроек побольше, которые вполне можно один раз выполнить и в конфигурационном файле «yt-dlp.conf».
Вам нравится такой подход – используйте на здоровье. Я возражать не буду. Зато новомодно, как бы.
Непонятно, в чем смысл вашей статьи.
По сути, это демо-проект, демонстрирующий:
– Реализацию «тёмной» темы на сверхлёгком движке WTL. Программы получаются микроскопические, по современным меркам, но, достаточно функциональными. Полученным загрузчиком, лично я, с удовольствием пользуюсь, вместо аналогичного, с которым сравниваю.
– Использование безфреймовых окон, ради эмуляции собственного «тёмного» фрейма.
– Оптимальная кастомизация стандартных контролов (CEdit и CButton), без использования сабклассинга и внешних файлов изображений. Для эмуляции системных кнопок я использую bmp-картинки, но они микроскопические.
– Демонстрация межпроцессного взаимодействия между консольной и оконными программами.
– Оптимальная работа с многострочным и однострочным редакторами. Кстати, в своем проекте «МедиаТекст», я использовал контрол «RichEdit», как более продвинутый. Теперь, в следующей версии, я заменю его на стандартный (явно недооцененный всеми) контрол «CEdit».
Вы считаете, этого недостаточно для статьи, здесь?
На гитхабе таких бесполезных учебных проектов пруд пруди.
Совершенно верно! «Никакая работа не кажется безнадёжной, если её . . . – делать другому!».
Вот если бы вы написали полноценную статью или библиотеку, как без боли добавить в legacy wtl приложение темную тему, это лично мне было бы интересно.
В «legacy» на С++ или другом языке?
Взяли бы бесплатную редакцию Delphi. Запустили среду и через 3 минуты и 23 секунды уже бы завершили свой проект. Memo1, Button1, Button2, OnClick1, OnClick2, ShellExecute/WinExec. Готово.
WxWidgets осваивается мгновенно, есть визуальные дизайнеры гуя. В итоге, не сложнее Delphi, обозримый фреймворк, не сильно распухший исполняемый модуль, теперь и с темной темой.
WxWidgets осваивается мгновенно, есть визуальные дизайнеры гуя. В итоге, не сложнее Delphi, обозримый фреймворк, не сильно распухший исполняемый модуль, теперь и с темной темой.
Это все пройденные этапы. Работал я и с Паскаль, еще на уровне «Object Professional», и с Qt, wxWidgets,, Win32++, MFC, и, совсем недавно, с DuiLib и DuiLib Editor. И даже на «чистом» WinAPI. Причем, и с ассемблером, тоже, немного «баловался», на уровне перекомпиляции бинарного кода (см. мой сайт https://erfaren.narod.ru/ ).
Но, именно WTL зацепил меня больше всего, поэтому все эти советы кому, на чем работать, да еще даваемые незнамо-кому – от лукавого, особенно, если их не просят.
Что касается «тёмной» темы, то, лично я, не сторонник ее. Просто, после публикации моей обучающей программы (последняя версия в https://habr.com/ru/articles/930868/ ), народ предъявил претензии, почему, мол, интерфейс не в «тёмной» теме? Вот и решил попробовать, насколько это реально именно на С++ / WTL? Оказалось, реально. Вопрос только стоит ли этим заниматься?
Нереально. WTL это по сути лёгкая обёртка над WinAPI ,сделанная в стиле ATL (по моему теми же авторами)
По крайней мере, включая Win10 винда не даёт возможности менять цвета ни полям ввода ни скроллбарам, ни меню. Так что выходит все равно базовые контролы делать все самому.
Далее, ко всему прочему, у нас нет кросс платформы, и ни какой "Реестр отечественного ПО" нам сразу не светит, ну если только не извращаться с wine.
Я, в свое время, это все проходил и в итоге, пошел по пути полностью своей UI либы, как те китайцы))
Если интересно: https://libwui.org базовые контролы все есть, как есть и вполне продовое приложение уже года 3 работает на ней.
Да и темы можно делать хоть темные хоть зелёные, это все в json указывается, чем-то на примитивный css похоже.
Нереально. WTL это по сути лёгкая обёртка над WinAPI
Потому я её и использую, что это «по сути лёгкая обёртка над WinAPI».
По крайней мере, включая Win10 винда не даёт возможности менять цвета ни полям ввода ни скроллбарам, ни меню. Так что выходит все равно базовые контролы делать все самому.
У меня, только, эмулирован фрейм окна, а базовые контролы: многострочный и однострочный класс CEdit и кнопки CButton и CBitmapButton – стилизуются из стандартных элементов управления. Так что «делать все самому» не надо, только наследование стандартных классов, их композиция и, как вариант, их сабклассинг.
Далее, ко всему прочему, у нас нет кросс платформы, и ни какой "Реестр отечественного ПО" нам сразу не светит, ну если только не извращаться с wine.
Для этого надо профессионально заниматься C++ / WTL. Поэтому, не надо требовать от пет-проектов больше, чем они могут дать. Смысл которых – не зависеть от «командиров программирования». И от кросс-платформы тоже. Линукс мне надо было предлагать в студенческие годы, когда я тянулся к командной строке и консоли. Но, тогда, нас всех переориентровали на Windows и привычные ПК. А сейчас тема работы вне «Форточек» лично мне уже не интересна.
Я, в свое время, это все проходил и в итоге, пошел по пути полностью своей UI либы, как те китайцы))
У китайцев громоздкое решение, хотя, поначалу, нравилось. Да и они его делали больше для себя, чем для Мира.
Если интересно: https://libwui.org базовые контролы все есть, как есть и вполне продовое приложение уже года 3 работает на ней.
Я быстро глянул, скриншотов готовых приложений не нашел. А в коде не понравился main(), поскольку, мне более привычен wWinMain().
Да и темы можно делать хоть темные хоть зелёные, это все в json указывается, чем-то на примитивный css похоже.
Опять же, лично мне темы не нужны (я экспериментировал ради пользователей), я предпочитаю использовать графику, как в своей обучающей программе «L'école» ( https://habr.com/ru/articles/930868/ ). Зачем там тема? Красиво и так!
А сейчас тема работы вне «Форточек» лично мне уже не интересна.
Грустно такое читать. И дело даже не в реестрах и импортозамещениях. Дело в том, что «Форточки» гвоздями прибиты к бизнесу одной отдельно взятой компании. То есть что бы вы не делали - вы постоянно подстраиваетесь под Microsoft. Об этом хорошо написал Джоэль Спольски (человек, который к MS вообще всегда относился лояльно и ностальгически вспоминал, как Билл Гейтс лично рецензировал его код для Excel) в статье "Огонь и движение".
А линукс - это открытый мир со множеством игроков, где можно участвовать в чём угодно. И командная строка тут, строго говоря, необязательна (хотя во многих случаях владение ей увеличивает эффективность работы). Лично я свои pet projects делаю строго на кроссплатформенном инструментарии. То, что Вы увидели где-то кутешный проект под 500 мегабайт - скорее всего, авторы не умеют готовить инструментарий. Мой редактор контактов с поддержкой зоопарка разных форматов, статически собранный под винду (т.е. кутешные библиотеки тащить не надо, они уже в экзешнике) занимает 10 мб в сборке с Qt4 и 20 мб в сборке с Qt5. Под шестёрку статикой пока не собирал.
Грустно такое читать.
Ну, я вынужден был уйти из официальной работы, где программирование на «1С» (100%-но собственные конфигурации + свои внешние компоненты и драйвера для «левого» оборудования на С++/WTL и много чего еще) кормило меня долгие годы. Тогда, вопрос о Линуксе и свободном ПО никто не поднимал. Сейчас уже «поднимают», но я уже не работаю.
В принципе, если бы сказали «надо», то куда я бы делся с «подводной лодки»? Вот, в свое время, даже дизассемблером увлекался (см. мой сайт https://erfaren.narod.ru/ ), который даже автор «народного» дизассемблера» IDAPro – Ильфак Гильфанов, посещал.
Поэтому, как говорится: «Я сейчас уже в том возрасте, когда можно уже говорить, что я уже не в том возрасте!». Зачем мне новые приключения, которые ничего не дают «ни уму, ни сердцу»?
Мой редактор контактов с поддержкой зоопарка разных форматов, статически собранный под винду (т.е. кутешные библиотеки тащить не надо, они уже в экзешнике) занимает 10 мб в сборке с Qt4 и 20 мб в сборке с Qt5. Под шестёрку статикой пока не собирал.
Я работал, немного, с Qt и wxWidgets. Но, не скажу, что в восторге. А вот от С++/WTL я в восторге! Зачем мне изменять своим привычкам, если я ничем, кроме пет-проектов и прочей «ерундой» сейчас не занимаюсь?
Я, кстати, очень большой сторонник платформы «1С77», в которой без ума от его объекта «Справочник», который доставил мне, в моей карьере, – максимум удовольствия (в связке с Visual FoxPro по DDE-каанлу). Так вот, в Qt присутствует практически идеальный грид из всего существующего опенсорса. Но, к сожалению, он не поддерживает группы, как «Справочнике», в «семерке», хотя поддерживает Sqlite, по умолчанию (то, что мне надо!).
Есть древний опенсорс «2С», (на C++ / MFC), который я бы хотел иметь, только используя вместо MFC – WTL. Делать подобный аналог на Qt – глупо, как на мой взгляд, тем не менее, подобный проект я бы посмотрел.
Вот если бы Вы похвастались созданием учетной платформы а-ля «1С77» на Qt, то это бы меня впечатлило, а так, сделал Ильфак Гильфанов свою ИДУ на Qt – молодец! Но, к сожалению, это уже не моя область интересов, а опенсорсной учетной системой я бы заинтересовался, хотя, профессионально с ней я уже не работаю. Так, ностальгии, ради :) .
Резюмируем.
Если вести разговор об опенсорсных С++ проектах, связанных с учетом на предприятии, то здесь, практически уже без разницы, в «Форточках» Вы сидите или в консоли Линукса. И M$ нам уже никак не помешает получать удовольствие от процесса! :)
Я сейчас уже в том возрасте, когда можно уже говорить, что я уже не в том возрасте!
Грустно такое читать №2. Мне 56 и я сейчас себя заставляю переписывать одну свою сетевую библиотеку с QtNetwork на Boost.ASIO, с которым раньше дела не имел. Не знаю, как насчёт сердца,но для ума точно полезно, заставляет мозг шевелиться, а не просто воспроизводить шаблоны. И да, я сильно надеюсь, что когда уйду на пенсию, опенсорсные проекты не оставлю.
Хотя я посмотрел - у Вас в последнее время большинство публикаций про человеческие языки, а не про программирование. Если Вы не работаете и хобби у Вас далеко от программирования - то наверное, это нормально. Но вот я, например, привык, что с линуксом у меня всегда есть выбор.
без разницы, в «Форточках» Вы сидите или в консоли Линукса
Вы почему-то третий вариант пропускаете - сидеть в GUI Линукса. Всё-таки рождается подозрение, что линукс вы последний раз видели ну очень давно. :)
Грустно такое читать №2. Мне 56
Мне больше! Но, я не грущу. Кому-то в этом Мире явно хуже, поэтому, на их фоне мне себя не так жалко.
и я сейчас себя заставляю переписывать одну свою сетевую библиотеку с QtNetwork на Boost.ASIO, с которым раньше дела не имел. Не знаю, как насчёт сердца, но для ума точно полезно, заставляет мозг шевелиться, а не просто воспроизводить шаблоны. И да, я сильно надеюсь, что когда уйду на пенсию, опенсорсные проекты не оставлю.
Я уже на пенсии, За это время написал обучающую программу ( https://lecole.free.nf/Prg/Lecole.php ), сделал кучу двуязычных субтитров к оригинальным видео (самая малость, здесь: https://lecole.free.nf/video.php ) и, в данный момент, делаю двуязычную книгу по полной французской грамматике на французском языке.
Так вот, нет ничего более мощного в нашем возрасте, для прокачки мозга, как выучить иностранный язык. Это сложнее даже, чем написать сложную программу, кучу скриптов и обработать сложные данные.
Я давно открыл для себя метод БКП (буквальный контекстный перевод – https://polezp.narod.ru/Pics/BKP.jpg ), вот по нему и пытаюсь сделать двуязычную французскую грамматику ( http://zarion.webservis.ru/Pics/FrBookH.png http://zarion.webservis.ru/Pics/FrBookV.png – сейчас готовлю более короткие фразы). Из всей «троицы» (обучающая программа, двуязычные видео и двуязычные книги), последний вариант оказался самым эффективным. Уровень прогресса – сколько страниц книги, таким образом, подготовлено и в состоянии ли Вы читать и понимать обработанный оригинальный текст без перевода?
Затем, я хочу вернуться к обучающей программе и написать ее вторую версию. Если будут еще время и желание, то можно попробовать наваять свой вариант платформы а-ля «1С77». Так что задач для программирования у меня достаточно.
рождается подозрение, что линукс вы последний раз видели ну очень давно
Откровенно говоря, я его вообще не видел, тем более, в живую, не работал. В свое время сидел плотно на MS-DOS, любил командную строку и не любил графические оболочки под DOS (помню даже «Shell» от M$). Windows-95 встретил в штыки, но, постепенно, привык, особенно, к её новым версиям, и, похоже, уже не отвыкну.
Лично для себя, не вижу никакого смысла переходить на Линукс. Вы можете писать, допустим, на С++, в Линуксе, выложить проект на Гитхаб, а я, после долгих мучений, если Ваш проект мне понравится, скомпилирую его под MS VS C++ (как, например, скомпилировал консольный видеопроигрыватель FFPlay.c под оконное приложение Windows – в своем проекте «МедиаТекст», кстати, подобного аналога внедрения видео в оконное приложение, я, на Гитхабе, так и не нашел).
Минималистский графический интерфейс, на C++ / WTL, для консольного загрузчика