WinAPI Layout Editor

guidesoul

Green Team
27.07.2025
101
5
WinAPI Layout Editor — это инструмент для разработчиков, который позволяет визуально редактировать расположение и размеры элементов управления в приложениях, написанных на C/C++ с использованием WinAPI.

Программа решает одну из самых трудоёмких задач при работе с WinAPI — рутинную правку числовых координат и размеров в коде.

Вместо того чтобы многократно перекомпилировать проект для проверки каждого изменения, разработчик может открыть исходный файл в редакторе, передвинуть и изменить размеры элементов с помощью мыши и клавиатуры, а затем сохранить изменения прямо в исходный код.

Основные возможности

Перемещение и изменение элементов интерфейса в реальном времени.

Одиночное и групповое перетаскивание элементов мышью для быстрой компоновки.
Выделение нескольких элементов с помощью рамки мышью или удерживая Ctrl/Shift.

Использование клавиш-стрелок для попиксельного перемещения.

Изменение размеров с помощью Shift + клавиши-стрелки.

Отмена и повторение последних действий с помощью стандартных сочетаний клавиш Ctrl+Z и Ctrl+Y.

Открытый исходный код и развитие проекта

WinAPI Layout Editor — это проект с открытым исходным кодом.
Это значит, что любой желающий может изучить, как он работает, адаптировать его под свои нужды или принять участие в его развитии.

Скачать можно в облаке
 

Вложения

  • 1.webp
    1.webp
    19,7 КБ · Просмотры: 180
  • 2.webp
    2.webp
    26,9 КБ · Просмотры: 49
Улучшена функция сохранения

Вместо поиска по одной строке, редактор теперь считывает блок кода, начиная с найденной строки вызова CreateWindow и заканчивая символом точки с запятой (;).

Регулярное выражение применяется ко всему найденному блоку, что гарантирует нахождение и замену координат вне зависимости от стиля форматирования.

После сохранения измененный многострочный вызов автоматически преобразуется в однострочный для упрощения дальнейшей обработки.

Это позволяет корректно обрабатывать отформатированный, многострочный код и устраняет ошибку «Не удалось найти структуру вызова...».
 
Улучшения навигации

Масштабирование рабочей области с помощью колеса мыши теперь происходит относительно положения курсора, а не центра окна.
Это стандартное поведение для графических редакторов, которое делает навигацию гораздо более интуитивной и быстрой.

Реализована возможность перемещать всю рабочую область, что незаменимо при работе с большим увеличением.

1. Зажмите среднюю кнопку мыши (колесо) и двигайте курсор.
2. Зажмите клавишу Пробел и перемещайте область левой кнопкой мыши.
 
  • Нравится
Реакции: Сергей Попов
Режим реального отображения

Теперь можно увидеть, как элементы управления (кнопки, поля ввода) будут выглядеть в конечном приложении.
Это помогает точнее настроить их размеры и взаимное расположение.

Переключение между режимами осуществляется нажатием клавиши F2.

П.С. Есть что доработать
 

Вложения

  • 1.webp
    1.webp
    21,7 КБ · Просмотры: 42
  • 2.webp
    2.webp
    29 КБ · Просмотры: 39
В режиме "реального отображения" некоторые элементы управления (в частности, большие GroupBox-ы) было невозможно выделить, переместить или изменить их размер.
Проблема возникала, когда эти крупные элементы были частично перекрыты другими, более мелкими элементами (например, текстовыми метками STATIC).

Старый алгоритм выбора при клике находил все элементы под курсором и ошибочно выбирал тот, у которого была наименьшая площадь, а не тот, который находился визуально сверху.

Вместо сравнения площадей, новый алгоритм теперь корректно учитывает Z-порядок (визуальное наслоение) элементов.
 
Реализована функция переименования элементов интерфейса в режиме реального отображения.

Двойной клик по элементу активирует поле для редактирования его названия.
Чтобы применить новое имя, необходимо нажать Enter или щелкнуть мышью за пределами поля ввода.

Это нововведение значительно упрощает и ускоряет процесс локализации и настройки текстовых меток в интерфейсе.

 
Переименование элементов интерфейса теперь выполняется нажатием на среднюю кнопку мыши (колёcо).

Улучшена стабильность функции переименования в режиме реального отображения (клавиша F2 для смены режима).
 
Теперь можно изменять порядок отрисовки выбранных элементов, перемещая их на передний или задний план.

Это делается с помощью сочетаний клавиш:
Ctrl + стрелка вверх — переместить выбранные элементы на один уровень вперед (выше).
Ctrl + стрелка вниз — переместить выбранные элементы на один уровень назад (ниже).


При создании сложных интерфейсов элементы часто перекрывают друг друга.
Из-за этого бывает трудно или невозможно выбрать элемент, который оказался полностью или частично скрыт под другим.

Новая функция позволяет "поднять" нужный элемент наверх, чтобы с ним можно было работать (выделить, переместить, изменить размер), или, наоборот, "опустить" мешающий элемент на задний план, не меняя его координат.
 
Переключение режима отображения клавишей F2

Реалистичный вид показывает настоящие элементы управления (кнопки, поля ввода и т.д.), как они будут выглядеть в приложении.

Схематичный вид показывает элементы в виде простых блоков с технической информацией (номер строки в коде, координаты), что упрощает идентификацию и точную настройку.

Навигация по холсту

Вращайте колесо мыши для приближения или отдаления холста.

Это позволяет работать как с общим видом интерфейса, так и с мелкими деталями.

Зажмите среднюю кнопку мыши (колёсико) или клавишу Пробел и перемещайте мышь, чтобы сдвигать холст.

Перемещение элементов

Зажмите левую кнопку мыши на одном или нескольких выделенных элементах и перетащите их в нужную позицию на холсте.

Или выделите элементы и используйте клавиши со стрелками (, , , ) для точного, попиксельного перемещения.

Выделите элемент и используйте Ctrl + или Ctrl + , чтобы переместить его вперёд или назад относительно других элементов.

Изменение размеров

Выделите один или несколько элементов, зажмите клавишу Shift и используйте стрелки:

Shift + (стрелка влево) для уменьшения ширины.
Shift + (стрелка вправо) для увеличения ширины.
Shift + (стрелка вверх) для уменьшения высоты.
Shift + (стрелка вниз) для увеличения высоты.

Редактирование текста

Кликните по элементу средней кнопкой мыши, чтобы прямо на холсте изменить его заголовок (например, название кнопки).

Гибкое управление

Поддерживается как одиночное, так и групповое выделение и перетаскивание элементов.

Выделять элементы можно рамкой (зажав левую кнопку мыши на пустом месте) или кликая по ним с зажатыми клавишами Ctrl или Shift.

История изменений

Стандартные сочетания клавиш Ctrl+Z и Ctrl+Y позволяют отменять и повторять последние действия.

Скачать можно в облаке
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab