Как создать простое приложение для windows

Создание классических приложений для компьютеров с Windows Build desktop apps for Windows PCs

Эта статья содержит сведения, необходимые, чтобы приступить к созданию классических приложений для Windows или обновления существующих классических приложений для использования новейших возможностей Windows 10 This article provides the info you need to get started building desktop apps for Windows or updating existing desktop apps to adopt the latest experiences in Windows 10.

Платформы для классических приложений Platforms for desktop apps

Существуют четыре основные платформы для создания классических приложений для компьютеров с Windows. There are four main platforms for building desktop apps for Windows PCs. Каждая платформа предоставляет модель приложения, определяющую жизненный цикл приложения, полную инфраструктуру пользовательского интерфейса и набор элементов управления пользовательского интерфейса, которые позволяют создавать классические приложения, такие как Word, Excel и Photoshop, и получать доступ к исчерпывающему набору управляемых или собственных API-интерфейсов для использования функций Windows. Each platform provides an app model that defines the lifecycle of the app, a complete UI framework and set of UI controls that let you create desktop apps like Word, Excel, and Photoshop, and access to a comprehensive set of managed or native APIs for using Windows features.

Подробное сравнение этих платформ и дополнительные материалы по каждой платформе доступны в разделе Выбор платформы для приложения. For an in-depth comparison of these platforms along with additional resources for each platform, see Choose your app platform.

Передовая платформа для приложений и игр для, предназначенных для Windows 10. The leading-edge platform for Windows 10 apps and games. Вы можете создавать приложения UWP, которые используют только элементы управления и интерфейсы API универсальной платформы Windows (UWP), или использовать эти элементы управления и API в классических приложениях, созданных с помощью одной из других платформ. You can build UWP apps that exclusively use UWP controls and APIs, or you can use UWP controls and APIs in desktop apps that are built using one of the other platforms.

Предпочтительная платформа для собственных приложений для Windows, которым требуется прямой доступ к Windows и оборудованию. The platform of choice for native Windows apps that require direct access to Windows and hardware.

Общепризнанная платформа на основе .NET для преимущественно графических приложений для Windows, использующих модель пользовательского интерфейса XAML. The established .NET-based platform for graphically-rich managed Windows apps with a XAML UI model. Эти приложения могут быть нацелены на .NET Core 3 или полную платформу .NET Framework. These apps can target .NET Core 3 or the full .NET Framework.

Платформа на основе .NET, предназначенная для управляемых бизнес-приложений, использующих упрощенную модель пользовательского интерфейса. A .NET-based platform that is designed for managed line-of-business apps with a lightweight UI model. Эти приложения могут быть нацелены на .NET Core 3 или полную платформу .NET Framework. These apps can target .NET Core 3 or the full .NET Framework.

Стратегия развития Future roadmap

В будущем мы планируем улучшать платформы разработки приложений для Windows с помощью библиотеки пользовательского интерфейса Windows (WinUI) и Project Reunion. Looking forward, we are evolving the Windows app development platforms with the Windows UI Library (WinUI) and Project Reunion.

WinUI — это собственная среда взаимодействия с пользователем для приложений Windows 10. WinUI is a native user experience (UX) framework for Windows 10 apps. Библиотека WinUI разрабатывалась как набор средств. Она предоставляла новые и обновленные версии элементов управления WinRT для приложений UWP, предназначенных для более ранних версий Windows 10. WinUI started as a toolkit that provides new and updated versions of WinRT controls for UWP apps that target down-level versions of Windows 10. Область действия WinUI расширилась, и WinUI 3 представляет собой современную нативную платформу пользовательского интерфейса для приложений Windows 10 в UWP, .NET и Win32. As of WinUI 3, WinUI is growing in scope to become the premier native user interface (UI) framework for Windows 10 apps across UWP, .NET, and Win32 app platforms.

Project Reunion — это кодовое название для широкого спектра новых компонентов и инструментов для разработчиков. Это новый этап развития платформы для разработки приложений Windows. Project Reunion is the code name for a broad set of new developer components and tools that represents the next evolution in the Windows app development platform. Project Reunion включает единый набор API и инструментов, которые могут согласованно использоваться любыми приложениями в различных целевых версиях ОС Windows 10. Project Reunion provides a unified set of APIs and tools that can be used in a consistent way by any app on a broad set of target Windows 10 OS versions. Project Reunion дополняет имеющиеся платформы и среды приложений Windows, такие как UWP, нативная среда Win32 и .NET, общим набором API и инструментов, которые упрощают работу разработчиков. Project Reunion complements existing Windows app platforms and frameworks such as UWP and native Win32, and .NET with a common set of APIs and tools that developers can rely on across these platforms.

Дополнительные сведения см. в статье Project Reunion. For more information, see Project Reunion.

Обновление существующих классических приложений для Windows 10 Update existing desktop apps for Windows 10

Если у вас есть классические приложения WPF, Windows Forms или собственные классические приложения Win32, в Windows 10 и универсальной платформе Windows (UWP) предлагается много возможностей для реализации современных функций в имеющихся приложениях. If you have an existing WPF, Windows Forms, or native Win32 desktop app, Windows 10 and the Universal Windows Platform (UWP) offer many features you can use to deliver a modern experience in your app. Большинство этих функций доступны в виде модульных компонентов, которые можно внедрить в приложение в своем собственном темпе, не переписывая код приложения для другой платформы. Most of these features are available as modular components that you can adopt in your app at your own pace without having to rewrite your app for a different platform.

Ниже приведено лишь несколько функций, позволяющих улучшить существующие классические приложения. Here are just a few of the features available to enhance your existing desktop apps:

  • Используйте MSIX для упаковки и развертывания классических приложений. Use MSIX to package and deploy your desktop apps. MSIX — это современный формат пакета приложения для Windows, позволяющий упаковывать любые приложения для Windows. MSIX is a modern Windows app package format that provides a universal packaging experience for all Windows apps. Этот безопасный и надежный формат упаковки сочетает в себе преимущества технологий установки с использованием MSI-файлов, APPX-файлов, App-V и ClickOnce. MSIX brings together the best aspects of MSI, .appx, App-V and ClickOnce installation technologies and is built to be safe, secure, and reliable.
  • Интегрируйте возможности Windows 10 в свое классическое приложение с помощью расширений пакетов. Integrate your desktop app with Windows 10 experiences by using package extensions. Например, закрепите свое приложение в меню «Пуск», предоставьте к нему общий доступ или отправляйте всплывающие уведомления из приложения. For example, point Start tiles to your app, make your app a share target, or send toast notifications from your app.
  • Используйте острова XAML для размещения элементов управления XAML UWP в своем классическом приложении. Use XAML Islands to host UWP XAML controls in your desktop app. Многие последние функции пользовательского интерфейса Windows 10 доступны только для элементов управления XAML UWP. Many of the latest Windows 10 UI features are only available to UWP XAML controls.

Дополнительные сведения доступны в приведенных ниже статьях. For more information, see these articles.

Платформа Platform Описание Description Документация и ресурсы Docs and resources
Универсальная платформа Windows (UWP) Universal Windows Platform (UWP)
Статья Article Описание Description
Модернизация классических приложений Modernize desktop apps Описываются последние возможности разработки для Windows 10 и UWP, которые можно использовать в любом классическом приложении, включая приложения WPF, Windows Forms и приложения Win32 на C++. Describes the latest Windows 10 and UWP development features you can use in any desktop app, including WPF, Windows Forms, and C++ Win32 apps.
Руководство. Модернизация приложения WPF Tutorial: Modernize a WPF app Следуйте пошаговым инструкциям, чтобы модернизировать существующий пример бизнес-приложения WPF, добавив элементы управления рукописным вводом и календарем UWP в приложение и упаковав его в пакет MSIX. Follow step-by-step instructions to modernize an existing WPF line-of-business sample app by adding UWP Ink and calendar controls to the app and packaging it in an MSIX package.

Создание классических приложений Create new desktop apps

Ниже приведены некоторые ресурсы, которые помогут вам приступить к созданию классического приложения для Windows. If you are creating a new desktop app for Windows, here are some resources to help get you started.

Создание простейшего Windows-приложения

Для создания нового Windows – приложения в окне создания проекта нужно выбрать тип проекта CLR и шаблон Проложение Windows Forms[3]. После ввода нового имени проекта необходимо нажать кнопку ОК.

Рисунок 3.1 –Окно создания проекта

После этого откроется основное окно визуальной разработки.

Рисунок 3.2. — Основное окно визуальной среды

В редакторе кода появилась заготовка окна на вкладке Form1.h[Конструктор], а в папке проекта главный файл проекта First_form.cpp с методом main():

using namespace First_form;

int main(array ^args)

/* Включение визуальных эффектов Windows XP до создания каких-либо элементов управления*/

// Создание главного окна и его запуск

Метод main() является точкой входа для приложения и вызывает Application::Run(gcnew Form1()), который создает класс Form1.

Двойной щелчок мыши по форме на вкладке Form1.h[Конструктор] позволит просмотреть программный код, соответствующий пустой форме.

using namespace System;

using namespace System::ComponentModel;

using namespace System::Collections;

using namespace System::Windows::Forms;

using namespace System::Data;

using namespace System::Drawing;

public ref class Form1 : public System::Windows::Forms::Form

#pragma region Windows Form Designer generated code

this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);

this->ClientSize = System::Drawing::Size(284, 262);

this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);

private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) <

В тексте программы имеется директива using, обеспечивающая использование классов, очень важных для создания оконных приложений – классов из пространства имен System. Пространство имен System содержит фундаментальные типы данных, реализованные в .NET Framework.

Класс System::Convert предоставляет полный набор методов для поддерживаемых преобразований типов. В то время как различные языки программирования могут иметь различающиеся методы преобразования типов данных, класс Convert гарантирует, что все обычные преобразования доступны в общем формате. Например, поддерживаются преобразования из типов String в числовые типы, из типов DateTime в типы String и из типов String в типы Boolean.

Все типы данных (как структурные, так и ссылочные) производятся от единого общего предка: класса System::Object.

Главные методы объекта System::Object приведены ниже.

1. Метод Equals (Object) или Equals(Object, Object)— служит для проверки, являются ли два объекта одним и тем же экземпляром. Метод позволяет проверить идентичность хранимых экземплярами объекта значений.

2. Метод ReferenceEquals (Object, Object) проверяет, являются ли два объекта одним и тем же экземпляром класса.

3. Метод Finalize() по умолчанию не выполняет никаких действий. Этот метод может быть переопределен в унаследованных классах для выполнения финальной очистки памяти перед тем, как механизм сборки мусора (Garbage Collector) уничтожит данный объект.

4. Метод GetHashCode() служит для генерации хэш-значений (типа Integer), которые могут быть использованы для хранения объектов в хэш-таблицах.

5. Метод MemberwiseClone() создает точную копию объекта.

6. Метод ToString() возвращает текстовое представление объекта. В большинстве случаев этот метод возвращает полное имя класса для данного объекта.

7. Метод GetType() возвращает объект типа Type для данного экземпляра класса.

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

Рисунок 3.3. – Пустая форма проекта

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

Диалоговые окна

При разработке Windows-приложений часто возникает необходимость вывода различных сообщений при обработки разных событий. Чаще всего сообщения выводятся в специальные диалоговые окна.

Диалоговое окно — это форма, обладающая некоторыми специальными характеристиками. Первая отличительная черта большинства диалоговых окон — то, что их размер изменять нельзя. Кроме того, в диалоговых окнах обычно не используются элементы управления, помещаемые в заголовке обычных форм: ControlBox, MinimizeBox и MaximizeBox.

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

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

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

Окно сообщения (message box) — специальное диалоговое окно, которое прикладная программа может использовать, чтобы показывать сообщения и приглашение для обычного ввода данных. Окно сообщения обычно содержит текстовое сообщение и одну или большее количество кнопок. Прикладная программа создает окно сообщения, используя специальный класс MessageBox, определяя текст сообщения, заголовок, число и типы кнопок для показа.

Окно сообщения — модальное диалоговое окно и Windows создает его, используя те же самые внутренние функции, что и DialogBox.

Для отображения диалогового окна MessageBox используется метод Show, передав ему через параметр текст сообщения. По умолчанию в окне устанавливается кнопка ОК. Например:

Выполнение этой инструкции приведет к открытию окна, вид которого приведен на рисунке 3.4.

Изменить вид этого окна можно, изменяя его параметры, о которых мы поговорим ниже.

Рисунок 3.4. – Окно сообщений

Вторым параметром в окне сообщений задается заголовок окна:

MessageBox::Show(«Hi! Student!», «Welcome»);

Окно с заголовком приведено на рисунке 3.5.

Рисунок 3.5. – Окно сообщений с заголовком

С помощью третьего параметра можно указать, какие кнопки необходимо расположить в окне MessageBox. Этот параметр задается константами из перечисления MessageBoxButtons (Таблица 1).

Константа Кнопки, отображаемые в окне MessageBox
ОК OK
OKCancel OK, Cancel
YesNo Yes, No
YesNoCancel Yes, No, Cancel
RetryCancel Retry, Cancel
AbortRetryIgnore Abort, Retry, Ignore

Например, мы хотим выводить окно подтверждения на завершение работы приложения. В этом случае выберем набор кнопок Yes и No.

Метод MessageBox.Show может вернуть одно из нескольких значений перечисления DialogResult ( Таблица 2).

Таблица 2
Константа Кнопка, при щелчке которой возвращается эта константа
Abort Abort
Cancel Cancel
Ignore Ignore
No No
None Модальное диалоговое окно продолжает работать
OK OK
Retry Retry
Yes Yes

Метод MessageBox::Show() возвращает результат выбора пользователя, который должен быть проанализирован и в зависимости от выбора приложение должно быть закрыто или нет. Тогда текст программы примет вид:

System::Windows::Forms::DialogResult rez= MessageBox::Show(«Закрыть приложение?»,»Завершение работы», MessageBoxButtons::YesNo);

Вид окна подтверждения приведен на рисунке 3.6. Вызов этого окна осуществляется из приложений. Если будет нажата кнопка Да, то приложение закроется, а если кнопка Нет, то приложение продолжит свою работу.

Рисунок 3.6 – Окно подтверждения

С помощью четвертого параметра метода MessageBox::Show можно выбрать один из нескольких значков для расположения в левой части диалогового окна. Он задается в виде константы константы перечисления MessageBoxIcon ( таблица 3).

Таблица 3
Константа Значок
Asterisk, Information
Error, Stop
Exclamation, Warning
Question
None Значок не отображается

Добавим в предыдущий пример создания окна подтверждения вывод значка вопроса:

System::Windows::Forms::DialogResult rez= MessageBox::Show(«Закрыть приложение?»,»Завершение работы»,

Получим следующий вид окна:

Рисунок 3.7 — Окно подтверждения с выводом

Диалоговое окно можно создать не только на основе класса MessageBox, но и с использованием Windows -формы. Рассмотрим примеры проектирования простейших Windows-приложений.

Читайте также:  Сеть не опознано windows 10
Оцените статью