Начиная с Visual Studio 2012, в Microsoft Visual C++ отсутствует возможность непосредственного создания проектов Windows Forms. Это доставляет немало неудобств разработчикам.
Однако сама возможность использования этой технологии не исключена и поэтому проект, для приложения Windows Forms, можно создать вручную.
Для этого необходимо вначале создать пустой проект CLR и настроить его параметры.
В свойствах проекта необходимо выбрать ветку «Компоновщик» – «Система» и в строке «Подсистема» выбрать Windows, как это показано на скриншоте ниже.
После этого в ветке «Дополнительно» в строке «Точка входа» следует указать названии функции, которая будет являться точкой входа в программу.
На этом настройка проекта завершена.
Теперь необходимо создать главное окно программы и описать в нём точку входа.
Для этого в контекстном меню обозревателя решения Visual Studio выберем «Добавить» – « Создать элемент» и в открывшемся окне в ветке UI выберем Форма Windows Forms.
После добавления формы в проекте появятся файлы с её исходным кодом. Файл залоговка (в данном примере MyForm.h) и файл исходного кода (в данном примере, MyForm.cpp), в котором и следует описать точку входа в программу.
Точка входа программу представляет собой простую функцию, состоящую всего из 4х строк кода.
Вначале подключаем необходимые для работы модули.
1 2 |
using namespace System; using namespace System::Windows::Forms; |
Указываем атрибут потока STAThread, в котором будет выполняться функция, которая является точкой входа. Атрибут означает, что стартовый поток будет работать в Single Threaded COM-Apartment. Это нужно для объектов Windows Forms, которые работают в этом потоке.
1 |
[STAThread] |
После этого уже можно приступать непосредственно к описанию точки в хода (функция main).
Вначале включаем визуальные стили с помощью метода EnableVisualStyles() ,и, используя метод SetCompatibleTextRenderingDefault,задаём технологию визуализации графического интерфейса.
Далее запускаем приложение с созданной формой в качестве главного окна.
1 2 |
Проект1::MyForm Form; Application::Run(%Form); |
В итоге файл исходного кода с функцией main выглядит следующим образом.
1 2 3 4 5 6 7 8 9 10 11 |
#include "MyForm.h" using namespace System; using namespace System::Windows::Forms; [STAThread] void main(array^ args) { Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); Проект1::MyForm Form; Application::Run(%Form); } |
С помощью этого нехитрого способа можно разрабатывать приложения с использованием Windows Forms на C++ в Visual Studio 2012 и 2013.
Бесспорно, данный подход гораздо менее удобен по сравнению с непосредственным созданием проекта Windows Forms, которое было доступно вплоть до Visual Studio 2010 включительно. Но, к сожалению, новые версии пока не могут предложить разработчикам ничего другого. Остаётся надеяться, что в будущих версиях этот недостаток всё же будет устранён.
Добавить комментарий