C windows application projects

Раздел 1. Начала разработки Windows Application решений в Visual Studio NET

Глава 1 Простейший Windows Application проект

Параграф 1. Традиционное здравствуйте

Для создания Windows Application решения C# (приложения, проекта), после запуска Visual Studio.NET, нажимаем на кнопку в New Project (левая на панели инструментов), или нажимаем комбинацию клавиш Ctrl + Shift + N, или заходим в меню File и далее выбираем New и затем Project. На экране появляется диалоговая панель New Project (Рис.1.).

Рис.1. Диалоговая панель New Project

Выбираем и задаем:

Project Types: Visual C#;

Templates: Windows Application;

Name: пишем то имя, с которым будет сформирован .exe файл;

Location: директория в которой будет помещен проект (для удобства желательно создать директорию поближе к корню диска, например C:\SamplesC#);

Можно поставить галочку «Create Directory for Solytion» или задать директорию для данного решения в выбранной папке(Browse. ).

В редакторе кода появилась заготовка окна на вкладке Form1.cs[Designe] (Рис. 2.1.), а в папке C:\SamplesC# папка WindowsApplication1 c файлом WindowsApplication.sln (файл проекта решения) и подпапка WindowsApplication со своими подпапками Bin, Obj, Properties, которые пока содержат пустые поддиректории и, в которые, будут помещаться файлы, необходимые для сборки и отладки программы и .exe файл, о чем речь пойдет ниже. Файлы проекта Form1.cs, Form1.Designer.cs, Program.cs и WindowsApplication.csproj располагаются в подпапке WindowsApplication1.

В окне «Solutation Explorer» (Меню Viev | Solutation Explorer) выполним правый клик мышкой на файле проекта — «Form1.cs» — и выберем пункт меню «Viev Code» (или нажимаем F7), вызываем файл кода проекта (Рис. 2.2.):

В отличии от VisualStudio 2003 в данном файле только определения класса формы (Form1) с единственной пока функцией конструктора. Однако это не означает, что функция main исчезла вообще — ее разработчики просто перенесли в другой файл — Program.cs (Рис. 2.3.).

Код, как и в консольном приложении, описанном в любом учебнике по языкам семейства C, содержит статическую функцию Main(). В ней, собственно, и осуществляется инициализация приложения (также как и Borland C++ и многих других языках вызовом Application.Run() — запуском цикла обработки сообщений). При этом создается экземпляр класса Form1, конструктор которого вызывает функцию InitializeComponent(), выполняющую необходимые начальные установки.

И еще одно отличие от VisualStudio 2003 — вынос функций создания контролов, которые будут использоваться в форме приложения и самой формы в файл Form1.Designer.cs.

Возвращаемся к дизайнеру формы (вкладка Form1.cs[Design]), вызовем свойства формы (Properties) в контекстном меню формы (Рис.2.5.), кликнув правой кнопкой мышки на бланке формы (или меню View\Properties Window Ctrl+W, P) и в окне Properties из множества свойств установим:

Свойство Text — Hllo World C#;

BackColor — выберем (клик мышкой на поле и нажать стрелочку вниз) понравившийся нам цвет формы из трех возможных наборов;

Вновь посмотрим код в окне Form1.Designe.cs — изменилась функция InitializeComponent() — в ней появились внесенные изменения:

Однако, не все свойства удается поменять так легко, например имя формы (Form1).просто так поменять (как это было, например, в Delphi и Borland C++ Builder) нельзя — необходимо внести сразу два изменения, а именно, изменить имя формы (свойство Name ) в окне Properties и имя файла Form1.cs в Solutation Explorer. Причина — проект привязан к платформе OS, а файл .cs нет и существуют раздельно.

Далее, изменим свойство Icon (в поле выбора нажимаем кнопочку с тремя точками и из файлов загрузим какую либо картинку) и вновь посмотрим изменения в коде в файле Form1.Designe.cs:

Видно, что здесь появился вызов System.Drawing.Iсon, в качестве параметра которого выступает объект, помещенный в файл ресурсов — Form1.resx. Откроем его (с помощью контекстного меню узла Solutation Explorer — View Code) и убедимся, что такой ресурс есть (это XML файл).

В контекстном меню закладки Form.resx выберем пункт View Designer. В окне Open Width можем выбрать подходящий редактор (для данного случая Resource Editor) и отредактировать ресурс (в данном случае иконку) — Рис. 3.1.

Читайте также:  Linux script return error

И последний штрих — для того, чтобы сделать визитную карточку C#, вмеcто цвета в BackGround, в свойство формы BackgroundImage добавим картиночку, как показано на рисунке 3.2., и, не забудем поставить для свойство BackgroundImageLayout значение Stretch.

Теперь нажимаем F5 (меню Debug/Start Debuging) и видим созданное приложение (Рис.4.):

Рис.4. Приложение Hello World C#

Параграф 2. >Добавляем кнопочку

В меню View | Toolbox находим контрол Button и, кликнув по нему мышкой, перемещаем указатель на форму (если ошиблись, то кликаем по нужному контролу или вне окна формы) — и далее, кликаем мышкой в границах окна формы — контрол переместился на форму.

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

Следующий этап — установка свойств кнопки, которые устанавливаются аналогично установки свойств для самой формы (View | Proporties Window или контекстное меню контрола, пункт Properties):

Установим следующие свойства:

Text — имя кнопки;

BackColor — по вкусу;

FlatStyle — по вкусу.

Другие свойства пока трогать не будем. Но, чтобы при нажатии кнопочки что то происходило, создадим обработчик события ее нажатия. Переходим на вкладку Events окна Properties и делаем двойной щелчок левой клавишей мышки в поле против события Click (для события нажатия это равнозначно двойному клику мышки по самой кнопке). После чего, в файле Form1.cs решения появится код обработчика:

Вписываем в него следующий код для вывода диалогового окна:

Прежде чем нажать F5 посмотрим как изменился код решения в файле Form1.Designe.cs. Первое и главное — появилась строка объявления для кнопки:

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

Отметим, что кнопка буквально создана динамически в функции InitializeComponent(), что говорит о том, что контролы в C# можно создавать и динамически (достаточно повторить в любом месте файла Form1.cs данный код).

Нажимаем F5 и видим результат (Рис.5.).

Рис.5. Приложение с кнопкой и окном диалога

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

Параграф 3. Добавляем поле ввода и вывода

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

Вначале изменим некоторые свойства например шрифты и цвета контрол, начальный текст надписей и т.п. Особо подберем выравнивание — свойство TextAlign и добавим в обработчик события нажатия кнопки вместо кода вывода сообщений, следующий код:

После выполнения (F5) получим результат (Рис.5.):

Рис.5. Перенос текста

Параграф 4. Добавляем выполнение математической операции

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

После выполнения (F5) получим результат (Рис.6.):

Рис.6. Выполнение математической операции

Параграф 5. Добавляем картиночку

И наконец немного украсим приложение, для чего поместим на форму контрол PictureBox и загрузим в него произвольную картиночку. Для чего воспользуемся свойством контрола Image (загрузка полностью аналогична загрузке иконки, которая была описана выше). Формат загружаемого файла может быть .bmp, .ico, emf, .wmf, .png, .jpg, .jpeg, .gif (в том числе и анимационные). Установим в окне Proporties свойства контрола Image:

После выполнения (F5) получим результат (Рис.7.):

Рис.7. Простейшее Windows Application решение

Файл можно грузить и программно:

Молчанов Владислав 15.06.2004г.

Адаптировано к VS 2005 29.10.2006г.

Еcли Вы пришли с поискового сервера — посетите мою главную страничку

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

Мастер классических приложений Windows Windows Desktop Wizard

Мастер настольных систем Windows заменяет мастер приложений Win32 в Visual Studio 2017 и более поздних версиях. The Windows Desktop Wizard replaces the Win32 Application Wizard in Visual Studio 2017 and later. Мастер позволяет создавать любые из четырех типов проектов C++ (перечисленных в заголовке в таблице ниже). The wizard allows you to create any of four types of C++ projects (listed in the heading in the table below). В каждом случае можно указать дополнительные параметры, подходящие для открытого вами типа проекта. In each case, you can specify additional options that are appropriate for the type of project you open.

Читайте также:  Sketchcut pro для windows серийный номер

В таблице ниже показано, какие параметры доступны для каждого типа приложения. The following table indicates which options are available for each application type.

Тип поддержки Type of support Консольное приложение Console application Исполняемое приложение (Windows) Executable (Windows) application Библиотека динамической компоновки Dynamic-link library Статическая библиотека Static library
Пустой проект Empty project Да Yes Да Yes Да Yes Нет No
Символы экспорта Export symbols Нет No Нет No Да Yes Нет No
Предкомпилированный заголовок Precompiled header Нет No Нет No Нет No Да Yes
поддержка ATL ATL support Да Yes Нет No Нет No Нет No
поддержка MFC MFC support Да Yes Нет No Нет No Да Yes

Общие сведения Overview

На этой странице мастера описываются текущие параметры проекта для создаваемого приложения Win32. This wizard page describes the current project settings for the Win32 application you are creating. По умолчанию заданы следующие параметры: By default, the following options are set:

проект является приложением Windows; The project is a Windows application.

проект не пустой; The project is not empty.

проект не содержит символов экспорта; The project contains no export symbols.

проект не использует файл предкомпилированного заголовка (этот параметр доступен только для проектов статической библиотеки); The project does not use a precompiled header file (this option is available for static library projects only).

проект не включает поддержку MFC и ATL. The project includes support for neither MFC nor ATL.

Тип приложения Application type

Создает указанный тип приложения. Creates the specified application type.

Параметр Option Описание Description
Консольное приложение Console application Создание консольного приложения. Creates a console application. Visual C++ библиотеки времени выполнения также предоставляют выходные и входные данные из окон консоли с помощью стандартных функций ввода-вывода, таких printf_s() как scanf_s() и. The Visual C++ run-time libraries also provide output and input from console windows with standard I/O functions, such as printf_s() and scanf_s() . Консольное приложение не имеет графического пользовательского интерфейса. A console application has no graphical user interface. Он компилируется в exe-файл и может запускаться как автономное приложение из командной строки. It compiles into an .exe file and can be run as a stand-alone application from the command line.

Можно добавить поддержку MFC и ATL в консольное приложение. You can add MFC and ATL support to a console application.

Приложение Windows Windows application Создает программу Win32. Creates a Win32 program. Программа Win32 — это исполняемое приложение (EXE), написанное на C или C++, с использованием вызовов API Win32 для создания графического пользовательского интерфейса. A Win32 program is an executable application (EXE) written in C or C++, using calls to the Win32 API to create a graphical user interface.

Нельзя добавить поддержку MFC или ATL в приложение Windows. You cannot add MFC or ATL support to a Windows application.

Библиотека динамической компоновки Dynamic Link Library Создает библиотеку динамической компоновки Win32 (DLL). Creates a Win32 dynamic-link library (DLL). DLL-библиотека Win32 — это двоичный файл, написанный на языке C или C++, который использует вызовы API Win32, а не классы MFC, который выступает в качестве общей библиотеки функций, которые могут одновременно использоваться несколькими приложениями. A Win32 DLL is a binary file, written in C or C++, that uses calls to the Win32 API rather than to MFC classes, and that acts as a shared library of functions that can be used simultaneously by multiple applications.

Нельзя добавить поддержку MFC или ATL в приложение DLL, созданное с помощью этого мастера, но можно создать библиотеку DLL MFC, выбрав New > Project > MFC DLL. You cannot add MFC or ATL support to a DLL application created by using this wizard, but you can create an MFC DLL by choose New > Project > MFC DLL.

Статическая библиотека Static library Создает статическую библиотеку. Creates a static library. Статическая библиотека — это файл, содержащий объекты и их функции и данные, которые связываются с программой при создании исполняемого файла. A static library is a file containing objects and their functions and data that links into your program when the executable file is built. В этом разделе объясняется, как создать начальные файлы и Свойства проекта для статической библиотеки. This topic explains how to create the starter files and project properties for a static library. Файл статической библиотеки предоставляет следующие преимущества. A static library file provides the following benefits:

— Статическая библиотека Win32 полезна, если приложение, над которым вы работаете, выполняет вызовы к API Win32, а не к классам MFC. — A Win32 static library is useful if the application you are working on makes calls to the Win32 API rather than to MFC classes.
— Процесс связывания аналогичен тому, написан ли остальная часть приложения Windows на языке C или в C++. — The linking process is the same whether the rest of your Windows application is written in C or in C++.
— Можно связать статическую библиотеку с программой на основе MFC или с программой, отличной от MFC. — You can link a static library to an MFC-based program or to a non-MFC program.

Дополнительные параметры Additional options

Определяет поддержку и параметры для приложения в зависимости от его типа. Defines the support and options for the application, depending on its type.

Параметр Option Описание Description
Пустой проект Empty project Указывает, что файлы проекта пусты. Specifies that the project files are blank. При наличии набора файлов исходного кода (например, CPP-файлов, файлов заголовков, значков, панелей инструментов, диалоговых окон и т. д.) и необходимости создания проекта в среде разработки Visual C++ необходимо сначала создать пустой проект, а затем добавить файлы в проект. If you have a set of source code files (such as .cpp files, header files, icons, toolbars, dialog boxes, and so on) and want to create a project in the Visual C++ development environment, you must first create a blank project, then add the files to the project.

Этот выбор недоступен для проектов статической библиотеки. This selection is unavailable for static library projects.

Символы экспорта Export symbols Указывает, что проект DLL экспортирует символы. Specifies that the DLL project exports symbols.
Предкомпилированный заголовок Precompiled header Указывает, что в проекте статической библиотеки используется предварительно скомпилированный заголовок. Specifies that the static library project uses a pre-compiled header.
Проверки жизненного цикла разработки безопасности (SDL) Security Development Lifecycle (SDL) checks Дополнительные сведения об SDL см. в статье жизненный цикл разработки защищенных приложений (Майкрософт) (SDL) процессов . For more information about SDL, see Microsoft Security Development Lifecycle (SDL) Process Guidance

Добавьте общие заголовки для: Add common headers for:

Добавлена поддержка одной из библиотек, представленных в Visual C++. Add support for one of the libraries supplied in Visual C++.

Параметр Option Описание Description
ATL ATL Встраивает в проект поддержку для классов в библиотеке активных шаблонов (ATL). Builds into the project support for classes in the Active Template Library (ATL). Только для консольных приложений Win32. For Win32 console applications only.

Примечание . Этот параметр не указывает на поддержку добавления объектов ATL с помощью мастеров кода ATL. Note This option does not indicate support for adding ATL objects using the ATL code wizards. Объекты ATL можно добавлять только в проекты ATL или проекты MFC с поддержкой ATL. You can add ATL objects only to ATL projects or MFC projects with ATL support.

MFC MFC Встраивает в проект поддержку библиотеки Microsoft Foundation Class (MFC). Builds into the project support for the Microsoft Foundation Class (MFC) Library. Только для консольных приложений Win32 и статических библиотек. For Win32 console applications and static libraries only.

Комментарии Remarks

Создав классическое приложение Windows, можно добавить универсальные классы C++ с помощью мастера универсального кода. Once you have created a Windows desktop application, you can add generic C++ classes using the Generic Code Wizard. Можно добавить другие элементы, такие как файлы HTML, файлы заголовков, ресурсы или текстовые файлы. You can add other items, such as HTML files, header files, resources, or text files.

Классы ATL добавить нельзя, а классы MFC можно добавить только в те типы классических приложений Windows, которые поддерживают MFC (см. предыдущую таблицу). You cannot add ATL classes, and you can add MFC classes only to those Windows desktop application types that support MFC (see the previous table).

Читайте также:  Как сохранить заставку рабочего стола windows
Оцените статью