Как открыть дизайнер формы в проекте Windows Application C++?

Всем привет. В общем, создал проект Windows Application С++. При запуске без ошибок создаётся красивая форма. Но проблема — нет дизайнера, как мне создавать кнопки, лейблы и т.д? Скрин:
Отслеживать
20.2k 6 6 золотых знаков 37 37 серебряных знаков 81 81 бронзовый знак
задан 5 ноя 2019 в 19:59
SharpPythoneist SharpPythoneist
93 1 1 серебряный знак 9 9 бронзовых знаков
Если я не ошибаюсь, то дизайнер доступен только для проектов c++/cli. В проекте Windows Application — все элементы создаются ручками кодом.
5 ноя 2019 в 20:20
@Александр :(, эх. Просто WinForms там морочится долго, Visual C++ WinForms плохо поддерживает
5 ноя 2019 в 20:26
Использовать внешнюю утилиту. Что-то вроде ResEdit или Resource Hacker.
7 ноя 2019 в 19:22
@AlexanderPetrov а ей то как пользоваться? У меня установлен Resource Hacker
8 ноя 2019 в 12:33
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Никак. В проектах неуправляемых приложений Windows можно разве что использовать редактор ресурсов диалоговых окон для визуального редактирования интерфейса:
- В обозревателе решений Файлы ресурсов — два раза нажать по .rc файлу (если нет, создать)
- В левой панели (Окно ресурсов) правой кнопкой — Добавить ресурс — Dialog
- Откроется интерфейс редактора ресурсов диалоговых окон.
Подробнее о том, как это работает, см. здесь: C++ WinApi отделить UI View от кода
Но для удобной работы с GUI в режиме конструктора (как в .NET Windows Forms) в неуправляемых приложениях нужно что-то типа MFC.
Как добавить форму в проект (Windows Forms .NET)
Добавьте формы в свой проект с помощью Visual Studio. Если в приложении несколько форм, вы сможете выбрать начальную форму для приложения или одновременно отобразить несколько форм.
Документация по рабочему столу для .NET 7 и .NET 6 находится в стадии разработки.
Добавление новой формы
Добавьте новую форму в Visual Studio.
- В Visual Studio найдите панель Обозреватель проектов. Щелкните проект правой кнопкой мыши и выберите Добавить>Форма (Windows Forms).

- В поле Имя введите имя формы, например MyNewForm. Visual Studio сформирует имя по умолчанию, которое является уникальным. Можно использовать это имя.

После добавления формы Visual Studio откроет конструктор форм для этой формы.
Добавление ссылки на проект в форму
Если у вас есть исходные файлы для формы, можно добавить форму в проект, скопировав файлы в папку проекта. Ссылки на все файлы кода в папке проекта и в дочерних папках проекта будут автоматически добавлены в проект.
Форма включает два файла с одинаковыми именами и разными расширениями: form2.cs (form2 — пример имени файла) и form2.Designer.cs. Иногда присутствует файл ресурсов с тем же именем — form2.resx. В предыдущем примере form2 представляет собой базовое имя файла. Необходимо скопировать все связанные файлы в папку проекта.
Кроме того, можно использовать Visual Studio для импорта файла в проект. При добавлении существующего файла в проект файл копируется в папку проекта.

- В Visual Studio найдите панель Обозреватель проектов. Щелкните проект правой кнопкой мыши и выберите Добавить>Существующий элемент.
- Перейдите в папку, содержащую файлы формы.
- Выберите файл form2.cs, где form2 — базовое имя файла для связанных файлов формы. Не выбирайте другие файлы, например form2.Designer.cs.
См. также
- Как расположить форму и изменить ее размер (Windows Forms .NET)
- Общие сведения о событиях (Windows Forms .NET)
- Размещение и компоновка элементов управления (Windows Forms .NET)
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Как открыть дизайнер форм visual studio для С++ или его вообще не существует? Или как создать проект С++ подобного рода?
Ну он есть ещё с 2010-й студии, но официально начиная с 2015-й, а в 2013-й и ниже к нему можно доступ получить, если скопировать шаблон проекта в репозитории, но только вот c++/cli для формочек уж больно громоздок синтаксически, и я сам уже давным давно отказался от винформс, т. к. хоть интерфейс можно быстро накидать, но минусов более чем хватает, один из главных, это крайне слаба связка с данными, ну и много чего наберётся 🙂
Учитесь писать uwp-приложения, формы с mfc, забудьте эти анахронизмы, это уже прошлый век))
East RXПросветленный (24343) 6 лет назад
То есть Windows Forms — это анахронизм, а MFC, которая выпускается с 1992 года — нет?
Остальные ответы
Библиотека MFC входит в платный комплект.
там есть редактор диалоговых окон.
для простой программы подойдёт.
придётся гуглить как эти окна открывать
ещё есть файл windowsx.h для помощи
Руководство. Начало работы с конструктором Windows Forms
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
Конструктор Windows Forms предоставляет множество средств для создания приложений Windows Forms. В этой статье показано, как создать приложение с помощью различных средств, предоставляемых конструктором, включая следующие задачи:
- Упорядочение элементов управления с помощью оснастки.
- Выполнение задач конструктора с помощью смарт-тегов.
- устанавливать поля и отбивки для элементов управления;
- Упорядочение элементов управления с помощью TableLayoutPanel элемента управления.
- разделять макет элемента управления с помощью элемента управления SplitContainer;
- просматривать макет в окне «Структура документа»;
- размещать элементы управления с отображением размера и сведений о расположении;
- Задайте значения свойств с помощью окно свойств.
По завершении вы получите пользовательский элемент управления, который был собран с помощью многих функций макета, доступных в конструкторе Windows Forms. Этот элемент управления реализует пользовательский интерфейс для простого калькулятора. На следующем изображении показан общий макет элемента управления калькулятора.
Если вы являетесь разработчиком C++ и ищете руководство по созданию приложения Windows, которое включает формы и элементы управления, см. статью Создание приложения MFC на основе форм. Дополнительные обобщенные сведения см. в разделе Обзор программирования Windows на C++.
Создание проекта пользовательского элемента управления
Первым шагом является создание проекта элемента управления DemoCalculator.

- Откройте Visual Studio и создайте проект библиотеки элементов управления Windows Forms с помощью шаблона платформа .NET Framework для C# или Visual Basic. Задайте проекту имя DemoCalculatorLib.
- Чтобы переименовать файл, в обозревателе решений щелкните правой кнопкой мыши элемент UserControl1.vb или UserControl1.cs, выберите Переименовать и замените имя файла на DemoCalculator.vb или DemoCalculator.cs. Выберите «Да «, когда вам будет предложено переименовать все ссылки на элемент кода UserControl1.
В конструктор Windows Forms отображается поверхность конструктора для элемента управления DemoCalculator. В этом представлении можно графически спроектировать внешний вид элемента управления, выбрав элементы управления и компоненты на панели элементов и поместив их на поверхности конструктора. Дополнительные сведения см. в статье о разновидностях пользовательских элементов управления.
Разработка макета элемента управления
Элемент управления DemoCalculator содержит несколько элементов управления Windows Forms. В этой процедуре вы упорядочены элементы управления с помощью конструктора Windows Forms.
- В конструкторе Windows Forms увеличьте размер элемента управления DemoCalculator, выбрав маркер изменения размера в правом нижнем углу и перетащив его вниз и вправо. В правом нижнем углу Visual Studio просмотрите сведения о размере и расположении элементов управления. Задайте элементу управления ширину 500 и высоту 400, наблюдая за сведениями о размере при изменении размера элемента управления.
- На панели элементов выберите узел Контейнеры, чтобы открыть его. Выберите элемент управления SplitContainer и перетащите его на поверхность конструктора. Элемент SplitContainer появится на поверхности конструктора элемента управления DemoCalculator.
Совет Размер элемента управления SplitContainer автоматически устанавливается в соответствии с размером элемента управления DemoCalculator. В окне Свойства проверьте свойства, заданные для элемента управления SplitContainer . Найдите свойство Dock. Ему задано значение DockStyle.Fill. Это означает, что размер элемента управления SplitContainer устанавливается в соответствии с границами элемента управления DemoCalculator. Измените размер элемента управления DemoCalculator, чтобы проверить это поведение.
Примечание. Для некоторых элементов управления доступны смарт-теги, упрощающие проектирование. Дополнительные сведения см. в пошаговом руководстве. Выполнение распространенных задач с помощью смарт-тегов в элементах управления Windows Forms.
Заполнение элемента управления
Теперь, когда макет элемента управления настроен, можно добавить в элемент управления DemoCalculator кнопки и экран.
- На панели элементов выберите значок элемента управления TextBox . Элемент управления TextBox помещается в первую ячейку элемента управления TableLayoutPanel .
- В окне Свойства замените значение свойства ColumnSpan элемента управления TextBox на 5. Элемент управления TextBox переместится в центр своей строки.
- Замените значение свойства Anchor элемента управления TextBox на Left , Right . Элемент управления TextBox расширится по горизонтали, заняв все пять столбцов.
- Измените значение свойства TextBox элемента управления TextAlign на Right .
- В окне Свойства разверните узел свойства Font . Задайте значение 14 для Size и true для Bold у элемента управления TextBox .
- Выберите элемент управления TableLayoutPanel .
- На панели элементов выберите значок Button . Элемент управления Button разместится в следующей свободной ячейке элемента управления TableLayoutPanel .
- На панели элементов выберите Button еще четыре раза, чтобы заполнить вторую строку элемента управления TableLayoutPanel .
- Выберите все пять элементов управления Button , удерживая нажатой клавишу SHIFT. Нажмите клавиши CTRL+C, чтобы скопировать элементы управления Button в буфер обмена.
- Трижды нажмите сочетание клавиш CTRL+V, чтобы вставить скопированные элементы управления Button в оставшиеся строки элемента управления TableLayoutPanel .
- Выберите все 20 элементов управления Button , удерживая нажатой клавишу SHIFT.
- В окне Свойства замените значение свойства Dock на Fill . Все элементы управления Button закрепятся в своих ячейках.
- В окне Свойства разверните узел свойства Margin . Для All задайте значение 5. Всем элементам управления Button задается меньший размер, чтобы увеличить поля между ними.
- Выберите button10 и button20, после чего нажмите клавишу DELETE, чтобы удалить их из макета.
- Выберите button5 и button15, после чего замените значение их свойства RowSpan на 2. Эти кнопки представляют кнопки Clear и = button for the DemoCalculator control.
Использование окна структуры документа
Если в элементе управления или форме присутствует несколько элементов управления, перемещаться по макету удобнее с помощью окна «Структура документа».
- В строке меню выберите Вид>Другие окна>Структура документа. В этом окне структура элемента управления DemoCalculator и его составных элементов управления представлена в виде дерева. Дочерние элементы управления контейнерных элементов управления, таких как SplitContainer , отображаются в виде подузлов дерева. Вы также можете переименовать элементы управления с помощью окна «Структура документа».
- В окне Структура документа щелкните правой кнопкой мыши элемент button1, чтобы выбрать его, после чего щелкните Переименовать. Замените его имя на sevenButton.
- В окне Структура документа замените имена элементов управления Button , заданные конструктором, на имена для рабочей среды согласно следующему списку:
- button1 на sevenButton;
- button2 на eightButton;
- button3 на nineButton;
- button4 на divisionButton;
- button5 на clearButton;
- button6 на fourButton;
- button7 на fiveButton;
- button8 на sixButton;
- button9 на multiplicationButton;
- button11 на oneButton;
- button12 на twoButton;
- button13 на threeButton;
- button14 на subtractionButton;
- button15 на equalsButton;
- button16 на zeroButton;
- button17 на changeSignButton;
- button18 на decimalButton;
- button19 на additionButton;
- С помощью окон Структура документа и Свойства измените значения свойства Text для каждого имени элемента управления Button согласно следующему списку:
- для элемента управления sevenButton замените свойство текста на 7;
- для элемента управления eightButton замените свойство текста на 8;
- для элемента управления nineButton замените свойство текста на 9;
- для элемента управления divisionButton замените свойство текста на / (косая черта);
- для элемента управления clearButton замените свойство текста на Clear;
- для элемента управления fourButton замените свойство текста на 4;
- для элемента управления fiveButton замените свойство текста на 5;
- для элемента управления sixButton замените свойство текста на 6;
- для элемента управления multiplicationButton замените свойство текста на * (звездочка);
- для элемента управления oneButton замените свойство текста на 1;
- для элемента управления twoButton замените свойство текста на 2;
- для элемента управления threeButton замените свойство текста на 3;
- для элемента управления subtractionButton замените свойство текста на — (дефис);
- для элемента управления equalsButton замените свойство текста на = (знак равенства);
- для элемента управления zeroButton замените свойство текста на 0;
- для элемента управления changeSignButton замените свойство текста на +/-;
- для элемента управления decimalButton замените свойство текста на . (точка);
- для элемента управления additionButton замените свойство текста на + (знак «плюс»);
- На поверхности конструктора выберите все элементы управления Button , удерживая нажатой клавишу SHIFT.
- В окне Свойства разверните узел свойства Font . Задайте значение 14 для Size и true для Bold у всех элементов управления Button .
Этот набор инструкций завершает проектирование элемента управления DemoCalculator. Остается только добавить логику калькулятора.
Добавление обработчиков событий
Кнопки в элементе управления DemoCalculator имеют обработчики событий, которые можно использовать для реализации большей части логики калькулятора. Конструктор Windows Forms позволяет реализовать заглушки всех обработчиков событий для всех кнопок одним выбором.
- На поверхности конструктора выберите все элементы управления Button , удерживая нажатой клавишу SHIFT.
- Выберите один из элементов управления Button . В редакторе кода откроются обработчики событий, созданные конструктором.
Тестирование элемента управления
Поскольку элемент управления DemoCalculator наследуется от класса UserControl, его поведение можно проверить с помощью Контейнера для тестирования пользовательских элементов управления. Дополнительные сведения см. в статье «Практическое руководство. Тестирование поведения во время выполнения userControl».
- Нажмите клавишу F5, чтобы собрать и запустить элемент управления DemoCalculator в Контейнере для тестирования пользовательских элементов управления.
- Выберите границу между панелями SplitContainer и перетащите ее влево и вправо. Размеры элемента TableLayoutPanel и всех его дочерних элементов управления будут изменяться в соответствии с доступным пространством.
- После завершения тестирования элемента управления нажмите кнопку «Закрыть«.
Использование элемента управления в форме
Элемент управления DemoCalculator можно использовать в других составных элементах управления или в форме. Ниже описано, как это сделать.
Создание проекта
Первым шагом является создание проекта приложения. В этом проекте выполняется сборка приложения, демонстрирующего работу пользовательского элемента управления.
- Создайте проект Приложение Windows Forms с именем DemoCalculatorTest.
- В Обозревателе решений щелкните правой кнопкой мыши проект DemoCalculatorTest и выберите Добавить>Ссылка на проект, чтобы открыть диалоговое окно Диспетчер ссылок.
- Перейдите на вкладку Проекты и выберите проект DemoCalculatorLib, чтобы добавить ссылку на тестовый проект.
- В обозревателе решений щелкните правой кнопкой мыши DemoCalculatorTest и выберите пункт Назначить запускаемым проектом.
- В конструкторе Windows Forms увеличьте размер формы примерно до 700 x 500.
Использование элемента управления в макете формы
Чтобы использовать элемент управления DemoCalculator в приложении, его необходимо поместить в форму.
- На панели элементов разверните узел Компоненты DemoCalculatorLib.
- Перетащите элемент управления DemoCalculator с панели элементов в форму. Переместите элемент управления в левый верхний угол формы. Когда элемент управления близок к границам формы, отрезки отображаются. Линии привязки указывают расстояние свойства Padding формы и свойства Margin элемента управления. Поместите элемент управления в расположение, указанное линиями привязки. Дополнительные сведения см. в пошаговом руководстве. Упорядочение элементов управления с помощью линий оснастки.
- Перетащите элемент управления Button с панели элементов и поместите его в форму.
- Перемещайте элемент управления Button по элементу управления DemoCalculator, чтобы определить, где отображаются линии привязки. Вы можете точно и легко выровнять элементы управления с помощью этой функции. По завершении удалите элемент управления Button .
- Щелкните правой кнопкой мыши элемент управления DemoCalculator и выберите пункт Свойства.
- Замените значение свойства Dock на Fill .
- Выберите форму, а затем разверните узел свойства Padding . Замените значение Все на 20. Размер элемента управления DemoCalculator уменьшится в соответствии с новым значением формы Padding .
- Измените размер формы, перетаскивая различные маркеры изменения размера в разные положения. Обратите внимание на то, как размер элемента управления DemoCalculator пропорционально изменяется.
Следующие шаги
В этой статье было показано, как создать пользовательский интерфейс для простого калькулятора. Чтобы продолжить, вы можете расширить свою функциональность, реализуя логику калькулятора, а затем опубликовать приложение с помощью ClickOnce. Кроме того, перейдите к другому руководству, в котором вы создаете средство просмотра рисунков с помощью Windows Forms.
См. также
- Элементы управления Windows Forms
- Специальные возможности для элементов управления в Windows Forms
- Публикация с помощью ClickOnce