Как сделать окно в visual studio

Обновлено: 09.05.2024

  1. Окно Toolbox (Панель элементов управления) - элементы управления вы можете разместить на создаваемой форме.
  2. Окно Solution Explorer (Обозреватель решений) - здесь вы сможете увидеть следующие узлы: Properties - настройки проекта, Links (Ссылки) - подключенные к проекту библиотеки, а также созданные и подключенные к проекту файлы исходных кодов (с расширением .cs) и подключенные к проекту формы (например, Form1).
  3. Окно Class View (Окно классов) - здесь представлены все созданные в программе классы.
  4. Окно Properties (Свойства) - выбрав любой элемент управления или даже форму, вы сможете увидеть все параметры данного объекта, а также изменить значения, установленные в них по умолчанию.

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

Добавление новых элементов управления на форму

Итак, после того как вы ввели имя проекта, установили необходимый шаблон и нажали кнопку ОК, MS Visual Studio автоматически создаст каркас оконного приложения, после чего мы сможем добавить на него новые оконные элементы.

Для этого необходимо перетащить необходимый оконный элемент из окна инструментов (ToolBox).

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

В центре окна будет находиться надпись, которую мы создадим с помощью элемента Label.
Снизу будут расположены 2 кнопки.

Перейдите в свойства строки Label1, где измените текст на «Вы стремитесь сделать мир лучше?». Также измените тип шрифта, для этого найдите свойство Font (рис. 5).
Рисунок 5. Свойство Font элемента Label.
После чего установите тип шрифта Tahoma, ширину шрифта Bold и размер равный 16 (рис. 6).
Рисунок 6. Установки шрифта.
Далее измените текст на кнопках, используя свойство Text.

Техническая часть работы программы

  1. Сначала мы добавим обработчик события перемещения мыши и реализуем вывод ее координат x и y в два созданных поля ввода.
  2. Далее мы создадим функции обработчики щелчка по каждой из клавиш мыши (особенно усердные пользователи все же смогут попасть по кнопке «Да, конечно!»).
  3. Далее мы добавим код, реализующий случайное перемещение окна в том случае, если курсор приблизиться к кнопке «Да, конечно!».

Определение перемещения указателя мыши по форме

Щелкните непосредственно на части формы создаваемого приложения (НЕ на одном из элементов).

Теперь перейдите к свойствам формы с помощью щелчка правой кнопки мыши -> контекстное меню свойства.


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

textBox1 и textBox2 это экземпляры класса textbox, реализующие управление нашими элементами поля для ввода.

Член данных экземпляров Text позволяет установить текст в данных полях.

Таким образом, если теперь откомпилировать программу (F5), при перемещении указателя мыши по форме окна мы будем видеть координаты указателя (внутри формы), которые будут непрерывно изменяться.

Добавьте следующие строки кода:


Теперь снова вернитесь к конструктору и добавьте вторую кнопку, также с помощью двойного щелчка по ней.

Она будет содержать следующий код:

Теперь нам осталось только реализовать перемещение окна в тот момент, когда мышь приближается к кнопке «Да, конечно».

Для этого мы добавим код в функцию:

private void Form1_MouseMove(object sender, MouseEventArgs)

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

Также нам понадобится объявить несколько "рабочих" переменных, которые мы будем в дальнейшем использовать.

Генерация случайных чисел

Random rnd = new Random();

Здесь мы объявили экземпляр класса Random (rnd), с помощью которого мы будем генерировать случайные числа. В дальнейшем мы будем использовать код, вида rnd.Next (диапазон_генерации) или rnd.Next (от, до -1) для генерации случайного числа.

Также мы объявим еще несколько переменных, часть из которых сразу будет инициализирована.


tmp_location объявляется для того, чтобы в будущем временно хранить текущее положение окна.

Также нам следует подумать о том, что при случайном перемещении, наше окно может выйти далеко за пределы экрана.

_h и _w будут хранить в себе размеры экрана пользователя, которые определяются при их инициализации.

Теперь код этой функции будет выглядеть следующим образом:


Вот, собственно, и все. Откомпеллировав приложение, можете попробовать нажать на кнопку "Да, конечно". Это будет крайне трудно.

Расположение и размер диалогового окна C++, а также расположение и размер элементов управления в нем измеряются в единицах диалогового окна. значения для отдельных элементов управления и диалогового окна отображаются в правом нижнем углу строки состояния Visual Studio при их выборе.

Если в проекте еще нет RC-файла, см. раздел Создание нового файла описания ресурсов.

Инструкции

Редактор диалоговых окон позволяет:

Создание нового диалогового окна

В представление ресурсовщелкните правой кнопкой мыши RC -файл и выберите Добавить ресурс.

В диалоговом окне Добавление ресурса в списке тип ресурса выберите диалоговое окно , а затем нажмите кнопку создать.

Если рядом с типом ресурса диалогового окна отображается знак «плюс» ( + ), это означает, что доступны шаблоны диалоговых окон. Щелкните знак «плюс», чтобы развернуть список шаблонов, выберите шаблон и нажмите кнопку создать.

В редакторе диалоговых оконоткроется диалоговое окно создать.

Также можно открыть существующие диалоговые окна в редакторе диалоговых окон для редактирования.

Создание диалогового окна, которое пользователь не может выйти

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

В области Свойства диалогового окна задайте для false свойства системного меню значение.

Этот параметр отключает системное меню диалогового окна и кнопку Закрыть .

В форме диалогового окна удалите кнопки Отмена и ОК .

Во время выполнения пользователь не может закрыть модальное диалоговое окно с такими характеристиками.

Чтобы включить тестирование этого типа диалогового окна, функция тестового диалогового окна обнаруживает, что нажата клавиша ESC . Клавиша ESC также называется виртуальным ключом VK_ESCAPE. Независимо от того, как будет работать диалоговое окно во время выполнения, можно завершить тестовый режим, нажав клавишу ESC.

Для создания диалогового окна, которое пользователи не могут выйти из приложения MFC, необходимо переопределить поведение OnOK по умолчанию и OnCancel , так как даже если удалить связанные кнопки, диалоговое окно по-прежнему может быть закрыто нажатием клавиши Ввод или ESC.

Указание расположения и размера диалогового окна

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

Логическое свойство центра .

Если задать значение true, диалоговое окно всегда будет отображаться в центре экрана. Если для этого свойства задано значение false, можно задать свойства кспос и ИПОС .

Свойства кспос и ИПОС , которые используются для явного определения того, где появится диалоговое окно.

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

Свойство абсолютного соответствия, которое влияет на положение.

Если значение равно true, координаты задаются относительно экрана. Если значение равно false, координаты задаются относительно окна владельца диалогового окна.

Проверка диалогового окна

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

вводить текст, выбирать пункты в полях со списками, включать и отключать параметры, выбирать команды;

тестировать последовательность табуляции;

проверять группировку элементов управления, например переключателей и флажков;

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

Подключения к коду диалогового окна, созданному с помощью мастеров, не включаются в имитацию.

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

Когда Редактор диалоговых окон является активным окном, перейдите вдиалоговое окно Проверкаформата> меню.

Чтобы завершить моделирование, нажмите клавишу ESC или нажмите кнопку Закрыть в тестируемом диалоговом окне.

Установите Visual Studio бесплатно со страницы скачиваемых материалов Visual Studio, если еще не сделали этого.

Установите Visual Studio бесплатно со страницы скачиваемых материалов Visual Studio, если еще не сделали этого.

На некоторых снимках экрана в этом учебнике используется темная тема. Если вы не используете темную тему, но хотите переключиться на нее, см. страницу Персонализация интегрированной среды разработки и редактора Visual Studio.

Установите Visual Studio бесплатно со страницы скачиваемых материалов Visual Studio 2022, если еще не сделали этого.

Создание проекта

Откройте Visual Studio 2017.

В верхней строке меню последовательно выберите Файл > Создать > Проект.

Рабочая нагрузка .NET Core в Visual Studio Installer

Запустите Visual Studio.

На начальном экране выберите Создать проект.

Просмотр окна

Рабочая нагрузка .NET Core в Visual Studio Installer

Затем нажмите кнопку Изменить в Visual Studio Installer. Вам может быть предложено сохранить результаты работы; в таком случае сделайте это. Выберите Продолжить, чтобы установить рабочую нагрузку. После этого вернитесь к шагу 2 в процедуре Создание проекта.

В поле Имя проекта окна Настроить новый проект введите HelloWorld. Затем нажмите Создать.

В окне

Новый проект открывается в Visual Studio.

Запустите Visual Studio.

В окне запуска выберите Создание нового проекта.

Снимок экрана: окно "Создание проекта".

Снимок экрана: рабочая нагрузка .NET Core в Visual Studio Installer.

Затем нажмите кнопку Изменить в Visual Studio Installer. Вам может быть предложено сохранить результаты работы; в таком случае сделайте это. Выберите Продолжить, чтобы установить рабочую нагрузку. После этого вернитесь к шагу 2 в процедуре Создание проекта.

В поле Имя проекта окна Настроить новый проект введите HelloWorld. Затем выберите Создать.

Снимок экрана: "HelloWorld" в поле "Имя проекта" окна "Настроить новый проект".

Новый проект открывается в Visual Studio.

Создание приложения

Добавление кнопки на форму

Выберите Панель элементов, чтобы открыть всплывающее окно "Панель элементов".

Снимок экрана: выбор параметра "Панель элементов" для открытия окна панели элементов.

(Если параметр для всплывающего окна Панель элементов отсутствует, его можно открыть в строке меню. Для этого выберите Вид > Панель элементов. Либо нажмите клавиши CTRL+ALT+X.)

Выберите значок Закрепить, чтобы закрепить окно Панель элементов.

Снимок экрана: выбор значка "Закрепить" для закрепления окна панели элементов в среде IDE.

Выберите элемент управления Кнопка и перетащите его на форму.

В окне Свойства найдите Текст, измените имя с button1 на Click this и нажмите клавишу ВВОД.

(Если окно Свойства не отображается, его можно открыть в строке меню.) Для этого выберите Вид > Окно свойств. Или нажмите клавишу F4.)

В разделе Конструктор окна Свойства измените имя с button1 на btnClickThis и нажмите клавишу ВВОД.

Если список в окне Свойства был упорядочен по алфавиту, button1 появится в разделе Привязки данных.

Добавление метки на форму

Теперь, когда мы добавили элемент управления ''Кнопка'' для создания действия, давайте добавим элемент управления "Метка", куда можно отправлять текст.

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

В разделе Конструктор или Привязки данных окна Свойства измените имя label1 на lblHelloWorld и нажмите клавишу ВВОД.

Добавление кода на форму

В окне Form1.cs [Проект] дважды щелкните кнопку Нажмите это, чтобы открыть окно Form1.cs.

(Кроме того, можно развернуть узел Form1.cs в обозревателе решений, а затем выбрать Form1.)

В окне Form1.cs после строки private void введите lblHelloWorld.Text = "Hello World!"; , как показано на следующем снимке экрана:

Запуск приложения

Снимок экрана: выбор кнопки "Запустить" для отладки и запуска приложения.

Будет выполнено несколько операций. В интегрированной среде разработки Visual Studio откроются окна Средства диагностики и Вывод. Кроме того, вне этой среды откроется диалоговое окно Form1. Оно будет содержать вашу кнопку Нажмите это и текст label1.

Снимок экрана: диалоговое окно "Form1" с текстом "label1".

Закройте диалоговое окно Form1, чтобы завершить работу приложения.

Создание приложения

Добавление кнопки на форму

Щелкните Панель элементов, чтобы открыть всплывающее окно "Панель элементов".

Выберите

(Если параметр для всплывающего окна Панель элементов отсутствует, его можно открыть в строке меню. Для этого выберите Вид > Панель элементов. Либо нажмите клавиши CTRL+ALT+X.)

Щелкните значок Закрепить, чтобы закрепить окно Панель элементов.

Щелкните значок

Выберите элемент управления Кнопка и перетащите его на форму.

В окне Свойства найдите элемент Текст, измените имя с Button1 на Click this , а затем нажмите клавишу ВВОД.

(Если окно Свойства не отображается, его можно открыть в строке меню.) Для этого выберите Вид > Окно свойств. Или нажмите клавишу F4.)

В разделе Проектирование окна Свойства измените имя с Button1 на btnClickThis , а затем нажмите клавишу ВВОД.

Если список был упорядочен по алфавиту в окне Свойства, Button1 появится в разделе (DataBindings) .

Добавление метки на форму

Теперь, когда мы добавили элемент управления ''Кнопка'' для создания действия, давайте добавим элемент управления "Метка", куда можно отправлять текст.

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

В разделе Проект или (DataBindings) окна Свойства измените имя Label1 на lblHelloWorld и нажмите клавишу ВВОД.

Добавление кода на форму

В окне Form1.cs [Проект] дважды щелкните кнопку Нажмите это, чтобы открыть окно Form1.cs.

(Кроме того, можно развернуть узел Form1.cs в обозревателе решений, а затем выбрать Form1.)

В окне Form1.cs после строки private void введите lblHelloWorld.Text = "Hello World!"; , как показано на следующем снимке экрана:

Добавление кода на форму

Запуск приложения

Будет выполнено несколько операций. В интегрированной среде разработки Visual Studio откроются окна Средства диагностики и Вывод. Кроме того, вне этой среды откроется диалоговое окно Form1. Оно будет содержать вашу кнопку Нажмите это и текст Label1.

Диалоговое окно Form1 с текстом Label1

Закройте диалоговое окно Form1, чтобы завершить работу приложения.

Следующие шаги

Для получения дополнительных сведений перейдите к следующему руководству:

в этом пошаговом руководстве вы узнаете, как создать окно инструментов и интегрировать его в Visual Studio следующими способами.

Добавление элемента управления в окно инструментов.

Добавление панели инструментов в окно инструментов.

Добавьте команду на панель инструментов.

Задайте расположение по умолчанию для окна инструментов.

Предварительные условия

пакет SDK для Visual Studio входит в состав Visual Studio установки в качестве дополнительного компонента. дополнительные сведения см. в статье установка пакета SDK для Visual Studio.

Создание окна инструментов

Создайте проект с именем фирсттулвин с помощью шаблона VSIX и добавьте пользовательский шаблон элемента окна инструментов с именем фирсттулвиндов.

Дополнительные сведения о создании расширения с помощью окна инструментов см. в разделе Создание расширения с помощью окна инструментов.

Добавление элемента управления в окно инструментов

Удалите элемент управления по умолчанию. Откройте фирсттулвиндовконтрол. XAML и удалите элемент " Click Me! ". .

На панели элементов разверните раздел все элементы управления WPF и перетащите элемент управления " элемент мультимедиа " в форму фирсттулвиндовконтрол . Выберите элемент управления и в окне Свойства назовите этот элемент mediaElement1.

Добавление панели инструментов в окно инструментов

Добавив панель инструментов следующим образом, вы гарантируете, что ее градиенты и цвета будут согласованы с остальной частью интегрированной среды разработки.

В Обозреватель решений откройте фирсттулвиндовпаккаже. vsct. Файл . vsct определяет графические элементы пользовательского интерфейса (GUI) в окне инструментов с помощью XML.

В разделе найдите узел, атрибут которого name имеет значение guidFirstToolWindowPackageCmdSet . Добавьте следующие два элемента в список элементов этого узла, чтобы определить панель инструментов и группу панелей инструментов.

Непосредственно над разделом создайте раздел, похожий на следующий:

Существует несколько различных видов меню. Это меню представляет собой панель инструментов в окне инструментов, определяемую его type атрибутом. guid Параметры и id составляют полный идентификатор панели инструментов. Как правило, в меню содержится группа, содержащая. Однако панель инструментов определяется как собственная родительская. Таким образом, для элементов и используется один и тот же идентификатор . priority Атрибут имеет значение только "0".

Во многих случаях панели инструментов напоминают меню. Например, так как меню могут иметь группы команд, панели инструментов могут также иметь группы. (В меню группы команд разделяются горизонтальными линиями. На панелях инструментов группы не разделяются визуальными разделителями.)

Добавьте раздел, содержащий элемент. Определяет группу, идентификатор которой был объявлен в разделе. Добавьте раздел сразу после раздела.

Установив для родительского идентификатора GUID и идентификатора идентификатор GUID и идентификатор панели инструментов, вы добавите группу на панель инструментов.

Добавление команды на панель инструментов

Добавьте команду на панель инструментов, которая отображается как кнопка.

В разделе объявите следующие элементы IDSymbol сразу после объявлений групп панелей инструментов и панелей инструментов.

Добавьте в раздел элемент Button . Этот элемент появится на панели инструментов в окне инструментов с значком поиска (лупа).

Откройте фирсттулвиндовкомманд. CS и добавьте следующие строки в класс сразу после существующих полей.

Это делает команды доступными в коде.

Добавление свойства MediaPlayer в Фирсттулвиндовконтрол

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

В Обозреватель решений щелкните правой кнопкой мыши фирсттулвиндовконтрол. XAML, выберите пункт Просмотреть код и добавьте следующий код в класс фирсттулвиндовконтрол.

Создание экземпляра окна инструментов и панели инструментов

Добавьте панель инструментов и команду меню, которая вызывает диалоговое окно открытия файла и воспроизводит выбранный файл мультимедиа.

Откройте фирсттулвиндов. CS и добавьте следующие using директивы:

В классе Фирсттулвиндов добавьте открытую ссылку на элемент управления Фирсттулвиндовконтрол.

В конце конструктора присвойте этой переменной элемента управления только что созданный элемент управления.

Создайте экземпляр панели инструментов внутри конструктора.

На этом этапе конструктор Фирсттулвиндов должен выглядеть следующим образом:

Добавьте команду меню на панель инструментов. В классе Фирсттулвиндовкомманд. cs добавьте следующую директиву using:

В классе Фирсттулвиндовкомманд добавьте следующий код в конце метода Шовтулвиндов (). Команда Буттонхандлер будет реализована в следующем разделе.

Реализация команды меню в окне инструментов

В классе Фирсттулвиндовкомманд добавьте метод Буттонхандлер, который вызывает диалоговое окно открытия файла . Если файл выбран, он воспроизводит файл мультимедиа.

В классе Фирсттулвиндовкомманд добавьте закрытую ссылку на окно Фирсттулвиндов, которое создается в методе Финдтулвиндов ().

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

Добавьте метод Буттонхандлер. Он создает OpenFileDialog для пользователя, чтобы указать файл мультимедиа для воспроизведения, а затем воспроизводит выбранный файл.

Задание расположения по умолчанию для окна инструментов

Затем укажите расположение по умолчанию в интегрированной среде разработки для окна инструментов. Сведения о конфигурации для окна инструментов находятся в файле фирсттулвиндовпаккаже. CS .

В фирсттулвиндовпаккаже. CS найдите ProvideToolWindowAttribute атрибут FirstToolWindowPackage класса, который передает тип фирсттулвиндов в конструктор. Чтобы указать расположение по умолчанию, необходимо добавить дополнительные параметры в конструктор, как показано ниже.

Первый именованный параметр — Style , а его значение — Tabbed , то есть окно будет вкладкой в существующем окне. Положение закрепления задается Window параметром n в данном случае — идентификатор GUID Обозреватель решений.

Дополнительные сведения о типах окон в интегрированной среде разработки см. в разделе vsWindowType .

Тестирование окна инструментов

нажмите клавишу F5 , чтобы открыть новый экземпляр Visual Studio экспериментальной сборки.

в меню вид выберите другие Windows а затем — первое окно инструментов.

Окно инструментов проигрывателя мультимедиа должно открываться в том же расположении, что и Обозреватель решений. Если он по-прежнему отображается в том же расположении, что и ранее, сбросьте макет окна (окно или Сброс макета окна).

В этом пошаговом руководстве показано, как создать традиционное классическое приложение Windows в Visual Studio. В примере приложения, которое вы создадите, используется API Windows для отображения "Hello, Windows desktop!" в окне. Код, созданный в этом пошаговом руководстве, можно использовать в качестве шаблона для создания других классических приложений Windows.

Для краткости некоторые операторы кода опущены в тексте. В разделе "Сборка кода" в конце этого документа показан полный код.

Предварительные требования

Компьютер под управлением Microsoft Windows 7 или более поздних версий. Мы рекомендуем Windows 10 или более поздней версии для оптимальной разработки.

Копия Visual Studio. Сведения о скачивании и установке Visual Studio см. в этой статье. Когда вы запускаете установщик, убедитесь, что установлена рабочая нагрузка Разработка классических приложений на C++ . Не беспокойтесь, если вы не установили эту рабочую нагрузку при установке Visual Studio. Вы можете снова запустить установщик и установить ее сейчас.

Detail of the Desktop development with C++ workload in the Visual Studio Installer.

Базовые значения об использовании интегрированной среды разработки Visual Studio. Если вы уже использовали классические приложения для Windows, вы, вероятно, справитесь. Общие сведения см. в обзоре возможностей интегрированной среды разработки Visual Studio.

Основные навыки владения языком C++. Не волнуйтесь, мы не будем делать ничего сложного.

Создание классического проекта Windows

Выполните следующие действия, чтобы создать свой первый Windows классический проект. По мере использования вы введете код для рабочего Windows классического приложения. Чтобы ознакомиться с документацией по предпочтительной версии Visual Studio, используйте селектор Версия. Он находится в верхней части оглавления на этой странице.

Создание классического проекта Windows в Visual Studio

В главном меню выберите Файл >Создать >Проект, чтобы открыть диалоговое окно Создание проекта.

В верхней части диалогового окна задайте языкC++, задайте для платформызначение Windows и задайте для Project тип "Рабочий стол".

В отфильтрованный список типов проектов выберите Windows мастер рабочего стола и нажмите кнопку "Далее". На следующей странице введите имя проекта, например DesktopApp.

В Обозреватель решений щелкните правой кнопкой мыши проект DesktopApp, выберите "Добавить" и выберите "Создать элемент".

В диалоговом окне Добавление нового элемента выберите Файл C++ (.cpp). В поле "Имя" введите имя файла, например HelloWindowsDesktop.cpp. Выберите Добавить.

Screenshot of the Add New Item dialog box in Visual Studio 2019 with Installed ></p>
<p> Visual C plus plus selected and the C plus plus File option highlighted.

Теперь проект создан, и исходный файл откроется в редакторе. Чтобы продолжить, перейдите к созданию кода.

Создание классического проекта Windows в Visual Studio 2017 г.

В меню Файл выберите команду Создать, а затем пункт Проект.

В диалоговом окне "Создать Project" в области слева разверните узел InstalledVisual>C++, а затем выберите Windows Desktop. В средней области выберите мастер Windows рабочего стола.

Screenshot of the New Project dialog box in Visual Studio 2017 with Installed ></p>
<p> Visual C plus plus > Windows Desktop selected, the Windows Desktop Wizard option highlighted, and DesktopApp typed in the Name text box.

В Обозреватель решений щелкните правой кнопкой мыши проект DesktopApp, выберите "Добавить" и выберите "Создать элемент".

В диалоговом окне Добавление нового элемента выберите Файл C++ (.cpp). В поле "Имя" введите имя файла, например HelloWindowsDesktop.cpp. Выберите Добавить.

Screenshot of the Add New Item dialog box in Visual Studio 2017 with Installed ></p>
<p> Visual C plus plus selected and the C plus plus File option highlighted.

Теперь проект создан, и исходный файл откроется в редакторе. Чтобы продолжить, перейдите к созданию кода.

Создание классического проекта Windows в Visual Studio 2015 г.

В меню Файл выберите команду Создать, а затем пункт Проект.

В диалоговом окне "Создать Project" в области слева разверните узел InstalledTemplatesVisual> >C++, а затем выберите Win32. В средней области выберите шаблон Проект Win32.

Screenshot of the New Project dialog box in Visual Studio 2015 with Installed ></p>
<p> Templates > Visual C plus plus > Win32 selected, the Win32 Project option highlighted, and DesktopApp typed in the Name text box.

На странице "Обзор " мастера приложений Win32 нажмите кнопку "Далее".

Create DesktopApp in Win32 Application Wizard Overview page.

На странице "Приложение Параметры" в разделе "Тип приложения" выберите Windows приложение. В разделе "Дополнительные параметры" снимите флажок предварительно скомпилированного заголовка, а затем выберите " Пустой проект". Чтобы создать проект, нажмите кнопку Готово.

В Обозреватель решений щелкните правой кнопкой мыши проект DesktopApp, выберите "Добавить" и выберите "Создать элемент".

В диалоговом окне Добавление нового элемента выберите Файл C++ (.cpp). В поле "Имя" введите имя файла, например HelloWindowsDesktop.cpp. Выберите Добавить.

Screenshot of the Add New Item dialog box in Visual Studio 2015 with Installed ></p>
<p> Visual C plus plus selected and the C plus plus File option highlighted.

Теперь проект создан, и исходный файл откроется в редакторе.

Создание кода

Далее вы узнаете, как создать код для классического приложения Windows в Visual Studio.

Запуск классического приложения Windows

Так же, как каждое приложение C и приложение C++ должны иметь функцию в качестве отправной main точки, каждое Windows классическое приложение должно иметь WinMain функцию. WinMain имеет следующий синтаксис:

Сведения о параметрах и возвращаемых значениях этой функции см. в разделе "Точка входа WinMain".

Что такое все эти дополнительные слова, такие как WINAPI , или CALLBACK , или, или HINSTANCE , или _In_ ? Традиционный API Windows использует методы typedefs и макросы препроцессора для абстрагирования некоторых подробностей типов и кода для конкретной платформы, таких как соглашения о вызовах, __declspec объявления и прагмы компилятора. В Visual Studio можно использовать функцию быстрой информации IntelliSense, чтобы узнать, что определяют эти определения типов и макросов. Наведите указатель мыши на интересующее слово или нажмите клавиши CTRLK, CTRLI++ для небольшого всплывающего окна, содержащего определение. Дополнительные сведения см. в разделе Using IntelliSense. Параметры и типы возвращаемых значений часто используют заметки SAL для перехвата ошибок программирования. Дополнительные сведения см. в статье "Использование заметок SAL для уменьшения дефектов кода C/C++".

Windows требуются классические программы. TCHAR определяет макрос, который разрешается в конечном счете wchar_t , если символ ЮНИКОД определен в проекте, в противном случае он разрешается в char . Если вы всегда создаете сборку с поддержкой ЮНИКОДа, вам не требуется TCHAR и может использоваться напрямую wchar_t .

Наряду с функцией WinMain каждый Windows классическое приложение также должно иметь функцию window-procedure. Обычно эта функция называется WndProc , но ее можно присвоить любое имя. WndProc имеет следующий синтаксис:

Дополнительные сведения см. в разделе Процедуры окна.

Добавление функциональных возможностей в функцию WinMain

WinMain В функции вы заполняете структуру типа WNDCLASSEX. Структура содержит сведения о окне: значок приложения, цвет фона окна, имя, отображаемое в заголовке строки, помимо прочего. Важно отметить, что он содержит указатель функции на процедуру окна. В приведенном ниже примере показана типичная структура WNDCLASSEX .

Сведения о полях приведенной выше структуры см. в разделе WNDCLASSEX.

Теперь можно создать окно. Используйте функцию CreateWindowEx .

Эта функция возвращает HWND дескриптор окна. Дескриптор немного похож на указатель, который Windows используется для отслеживания открытых окон. Дополнительные сведения см. в разделе Типы данных Windows.

На этом этапе окно было создано, но нам все равно нужно сообщить Windows, чтобы сделать его видимым. Вот что делает этот код:

На этом этапе функция WinMain должна напоминать приведенный ниже код.

Добавление функциональных возможностей в функцию WndProc

HDC в коде — это дескриптор контекста устройства, который используется для рисования в клиентской области окна. Используйте функции для EndPaint подготовки BeginPaint и завершения рисования в клиентской области. BeginPaint возвращает дескриптор контексту устройства отображения, используемому для рисования в клиентской области; EndPaint завершает запрос на рисование и освобождает контекст устройства.

Сборка кода

Как и было обещано, ниже приведен полный код для рабочего приложения.

Сборка примера

Удалите любой код, введенный в HelloWindowsDesktop.cpp в редакторе. Скопируйте этот пример кода и вставьте его в HelloWindowsDesktop.cpp:

В меню Построение выберите Построить решение. Результаты компиляции должны отображаться в окне вывода в Visual Studio.

Чтобы запустить приложение, нажмите клавишу F5. Окно, содержащее текст "Hello, Windows desktop!", должно появиться в левом верхнем углу экрана.

Screenshot of the running DesktopApp Project.

Поздравляем! Вы выполнили это пошаговое руководство и создали традиционное классическое приложение Windows.

Читайте также: