Разработка приложений на C# в среде Visual Studio 2005

Visual Studio.NET: среда разработки, интерфейс пользователя, система меню

Разбить на страницы
Показывать лекцию целиком

Панели инструментов и окна - инспекторы

Пакет Microsoft Visual Studio.NET является интегрированной средой разработки ( IDE - Integrated Development Environment ), потому что с помощью одного только этого средства, не прибегая к помощи других, можно выполнить многое, а именно:

  • генерировать "скелет" приложения без написания кода вручную
  • открывать проект в нескольких различных режимах представления
  • редактировать все составляющие кода как вручную, так и с помощью мастеров
  • разрабатывать визуальный интерфейс (меню и диалоговые окна)
  • подключаться к внешним ресурсам - например, к базам данных
  • компилировать и линковать исходный код
  • отлаживать приложение в процессе его работы
  • Пока мы будем говорить о самой среде. Среда разработки Visual Studio.NET имеет единый интерфейс для всех включенных в нее языков программирования.

    Типовой вид главного окна среды разработки следующий:

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

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

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

    Панели инструментов

    Панели инструментов среды расположены на своем традиционном месте - в верхней части окна ниже главного меню программы. Изначально в окне представлена только одна панель инструментов Standard. Заготовлено много панелей инструментов, которые пользователь может вызывать по своему желанию либо через контекстное меню при правом щелчке на свободном месте области размещения панелей инструментов (под главным меню), либо командой View/Toolbars.

    То же самое можно сделать через меню Tools/Customize, вызвав диалоговое окно Customize и открыв его на вкладке Toolbars.

    Элементы панели инструментов означают следующее:

  • Build (Сборка)
  • Crystal Reports - Insert (генератор отчетов - вставка)
  • Crystal Reports - Main (генератор отчетов - главное)
  • Data Design (проектирование данных)
  • Database Diagram (диаграмма базы данных)
  • Debug (отладка)
  • Debug Location (отладочный каталог)
  • Design (проектирование)
  • Dialog Editor (диалоговый редактор)
  • Formatting (форматирование)
  • Full Screen (полный экран)
  • HTML Editor (редактор HTML )
  • Image Editor (редактор изображений)
  • Layout (схема)
  • MenuBar ( панель меню)
  • Query (запрос)
  • Recorder (запись)
  • Source Control (управление исходным кодом)
  • Standard (стандартная)
  • Style Sheet (таблицы стилей)
  • Table (таблица)
  • Text Editor (текстовый редактор)
  • View (вид)
  • Web (веб)
  • XML Data (данные XML )
  • XML Schema (схема XML )
  • Панели инструментов могут приклеиваться ( Dockable )

    или быть свободными (находиться в плавающем состоянии как обычные окна программы).

    Более того, панель инструментов можно приклеить к любому краю главного окна - рамки: сверху, снизу, слева, справа, а также расположить выше главного меню.

    Для этого нужно зацепить панель мышью за свободное место или за полосу-поводок и перетянуть на требуемое место. Панель инструментов запоминает свое новое местоположение и после сокрытия при повторном вызове появляется там же. Любые панели в свободном состоянии располагаются поверх всех приклеенных окон среды. Выполнив правый щелчок на любой свободной панели инструментов можно вызвать контекстное меню включения или сокрытия панелей.

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

    Окна представлений (просто панели)

    В Visual Studio.NET каждое отдельное приложение рассматривается как решение ( solution ), состоящее из нескольких проектов ( project ). Проект представляет собой собрание файлов:

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

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

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

    Несколько важных панелей разработчик приложения использует постоянно или очень часто. Эти панели вызываются из меню View

    Наша задача на данном этапе - посмотреть внешние свойства этих панелей: как они вызываются и как настроить их внешний вид.

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

    Чтобы не загромождать рабочее пространство экрана, подавляющее число окон можно сделать выпадающими ( flu-out или Auto Hide ), которые появляются на экране как временные. Когда пользователь IDE работает с другой областью экрана, выпадающее окно отображается свернутым в виде пиктограммы с названием окна. Если же на эту пиктограмму навести курсор мыши, то оно мгновенно разворачивается.

    Эти окна инструментов можно делать прикрепляемыми ( Dockable ) к любой границе рабочей области, можно делать свободно плавающими ( Floating ). Свойства окон настраиваются через контекстное меню заголовка окна или, для активного окна, через меню Window. Окна можно встраивать друг в друга, перетаскивая их за заголовок в другое закрепленное окно. При этом взаимное расложение окон в общем контейнере может быть пристыкованным по вертикали ( Tile Vertically ),

    горизонтали ( Tile Horizontally )

    или совмещенным ввиде вкладок

    Окно представления Solution Explorer (проводник решений)

    Проводник решений отображает все файлы, связанные с текущим решением или проектом и позволяет быстро открывать любой из них на редактирование своим контекстным редактором со всеми необходимыми возможностями. Так, если открывается файл исходного кода, то запускается текстовый редактор. При открытии файла иконок, запускается графический редактор, а при редактировании диалоговых окон - редактор визуального проектирования диалоговых окон (через окно представления Resource View ).

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

  • Source Files - файлы исходного кода на C++ (где содержатся определения функций и методов программного кода)
  • Header Files - файлы заголовков (где содержатся объявления классов и прототипы функций)
  • Resource Files - файлы ресурсов (содержат описания диалоговых окон, пиктограмм, иконок, элементов управления)
  • Контекстное меню для элементов представления Solution Explorer позволяет быстро вызвать необходимую команду, например, удалить файл из решения (проекта), при этом среда лишь выводит его из состава проекта, но не удаляет физически. Для разных типов файлов вызывается контектсное меню, специфическое именно для файлов данного типа.

    Двойной левый щелчок на каком-либо файле представления Solution Explorer запускает редактор этого файла, также специфический именно для файла данного типа.

    Окно представления Class View (просмотр классов)

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

    Оно отображает классы, используемые в данном приложении. Представление также организовано в виде дерева с раскрывающимися узлами - классами, в которых перечислены базовые классы, атрибуты и методы. Вначале идут методы, помеченные фиолетовой пиктограммой, а затем - атрибуты, помеченные пиктограммой бирюзового цвета. Рядом с пиктограммой защищенных членов класса (protected) нарисован ключ, а рядом с закрытыми членами класса (private) - маленький замочек.Общедоступные члены класса ( public ) отображаются без замочков и ключей.

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

    Контекстное меню класса в окне представления Class View

    Щелчок на имени класса правой кнопкой мыши приводит к вызову контекстного меню

    Оно содержит следующие команды:

  • Go To Definition (перейти к определению) - открывает файл заголовка (файл с расширением .h ) в том месте, где был объявлен этот класс.
  • Browse Definition (обзор определений) - открывает окно Object Browser (Обозреватель объектов) и подсвечивает в нем имя данного класса.
  • Quick Find Symbol (быстрый поиск символов) - находит все символы (имена классов, функций, переменных), совпадающие с именем данного класса.
  • Add/Add Function (добавить/добавить функцию) - открывает мастер Add Member Function Wizart (мастер добавления методов).
  • Мастер добавляет объявление функции-члена в файл заголовка с описанием класса ( *.h ), а заготовку ее определения - в файл определений функций-членов класса ( *.cpp ). Диалоговое окно мастера имеет вид

  • Add/Add Variable (добавить/добавить переменную) - открывает мастер Add Member Variable Wizard (мастер добавления атрибута).
  • Мастер добавляет объявление переменной-члена в файл заголовка с описанием класса ( *.h ), а в файл ( *.cpp ) определения конструктора класса или функцию инициализации - установку, по возможности, начального значения этой переменной. Диалоговое окно мастера имеет вид

  • Copy (копировать) - копирует имя класса в буфер обмена, после чего его можно куда-нибудь вставить.
  • Sort Alphabetically (сортировать по алфавиту) - отображает в окне представления Class View узлы классов всего приложения или вложенные узлы конкретного класса в алфавитном порядке
  • узлы атрибутов
  • узлы методов
  • узел карты ( Maps )
  • узел базовых классов и интерфейсов ( Bases and Interfaces )
  • узел макроопределений и констант ( Macros and Constants )
  • Sort By Type (сортировать по типу) - отображает в окне представления Class View узлы классов всего приложения или вложенные узлы конкретного класса, отсортированные по типу. Вначале идут методы, затем атрибуты и т.д.
  • Sort By Access (сортировать по атрибутам доступа) - отображает в окне представления Class View узлы классов всего приложения или вложенные узлы конкретного класса, отсортированные по уровню доступа. Вначале идут элементы, не содержащие программный код, затем открытые элементы ( public ), затем закрытые элементы ( private ), затем защищенные элементы ( protected ). Внутри каждой категории элементы сортируются в алфавитном порядке.
  • Group By Type (сгруппировать по типу) - группирует все методы в одну вложенную папку Functions, а все атрибуты - в другую вложенную папку Variables.
  • Нужный режим сортировки можно установить и через кнопку с раскрывающимся списком в левом верхнем углу панели представления Class View

  • Properties (свойства) - открывает окно представления свойств класса, для которого было вызвано контекстное меню. Такой же результат можно получить, выделив требуемый класс в окне Class View, а затем выполнив команду View/Properties Window в главном меню.
  • Контекстное меню функции в окне представления Class View

    Щелчок правой кнопкой мыши на имени метода в окне представления Class View приводит к появлению на экране контекстного меню

    Оно содержит следующие команды:

  • Go To Definition (перейти к определению) - открывает файл, содержащий определение данной функции, и выделяет это место.
  • Go To Declaration (перейти к объявлению) - открывает файл, в котором объявлена данная функция (прототип для глобальной функции или объявление в классе для функции-члена), и выделяет это место.
  • Browse Definition (обзор определений) - открывает окно Object Browser (обозреватель объектов) и выделяет в нем имя указанной функции.
  • Quick Find Symbol (быстрый поиск символов) - находит все символы в приложении, совпадающие с именем данной функции, и отображает результаты поиска в окне Find Symbol Results (результаты поиска символов).
  • Copy (копировать) - Копирует имя функции в буфер обмена для последующей вставки куда-либо.
  • Команды сортировки рассмотрены ранее применительно к контекстному меню класса.
  • Properties (свойства) - отображает окно Properties со свойствами данной функции. Такой же результат можно получить, выделив требуемую функцию в окне Class View, а затем выполнив команду View/Properties Window в главном меню.
  • Контекстное меню переменной в окне представления Class View

    Правый щелчок мыши на имени атрибута приводит к появлению на экране контекстного меню

    Оно содержит следующие команды:

  • Go To Definition (перейти к определению) - открывает файл, содержащий определение данной переменной, и выделяет это место.
  • Browse Definition (обзор определений) - открывает окно Object Browser (обозреватель объектов) и выделяет в нем имя указанной переменной.
  • Quick Find Symbol (быстрый поиск символов) - находит все символы в приложении, совпадающие с именем данной переменной, и отображает результаты поиска в окне Find Symbol Results (результаты поиска символов).
  • Copy (копировать) - Копирует имя функции в буфер обмена для последующей вставки куда-либо.
  • Команды сортировки рассмотрены ранее применительно к контекстному меню класса.
  • Properties (свойства) - отображает окно Properties со свойствами данной переменной. Такой же результат можно получить, выделив требуемую переменную в окне Class View, а затем выполнив команду View/Properties Window в главном меню.
  • Окно представления Resource View (просмотр ресурсов)

    Традиционно визуальные элементы приложения Microsoft организует в виде ресурсов, в которые включены

  • горячие клавиши ( Accelerator )
  • рисунки ( Bitmap )
  • курсоры ( Cursor )
  • диалоговые окна ( Dialog )
  • скрипты HTML ( HTML )
  • пиктограммы ( Icon )
  • меню ( Menu )
  • таблицы строк ( String Table )
  • информация о версии ( Version )
  • панели инструментов ( Toolbar )
  • В окне представления Resource View ресурсы приложения представлены также в виде папок с соответствующими типами ресурсов.

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

    Ресурсы хранятся в виде описания на специальном языке в файле ресурсов с расширением *.r c (после компиляции - в файле с расширением *.re s ). Имя файла ресурсов совпадает с именем приложения. Этому файлу соответствует файл заголовка со стандартным именем Resource. h, в котором содержатся макроопределения соответствия идентификаторов ресурсов числовым значениям.

    //{{NO_DEPENDENCIES}}
    // Microsoft Visual C++ generated include file.
    // Used by xx.rc
    //
    
    #define IDS_APP_TITLE			103
    
    #define IDR_MAINFRAME			128
    #define IDD_XX_DIALOG			102
    #define IDD_ABOUTBOX			103
    #define IDM_ABOUT			104
    #define IDM_EXIT			105
    #define IDI_XX				107
    #define IDI_SMALL			108
    #define IDC_XX				109
    #define IDC_MYICON			2
    #define IDC_STATIC			-1
    // Next default values for new objects
    // 
    #ifdef APSTUDIO_INVOKED
    #ifndef APSTUDIO_READONLY_SYMBOLS
    
    #define _APS_NO_MFC			130
    #define _APS_NEXT_RESOURCE_VALUE	129
    #define _APS_NEXT_COMMAND_VALUE	32771
    #define _APS_NEXT_CONTROL_VALUE	1000
    #define _APS_NEXT_SYMED_VALUE		110
    #endif
    #endif

    К содержимому файла Resource.h можно получить доступ через меню Edit/Resource Symbols

    или через контекстное меню панели представления Resource View

    При получения доступа через контекстное меню в панели Resource View должен быть выделен узел ресурса, а не узел проекта. Пример представления файла Resource.h в среде Studio .NET имеет вид

    Исходный файл ресурсов можно открыть непосредственно в текстовом редакторе и, зная язык описания ресурсов, редактировать их на этом языке. Открыть файл ресурсов через текстовый редактор среды Studio .NET можно так:

  • выделить курсором любой ресурс в окне представления Resource View
  • через меню View/Open With...
  • вызвать диалоговое окно выбора редактора

  • после нажатия кнопки Open появится текст файла ресурсов, описывающий ресурсы приложения на языке ресурсов
  • //Microsoft Visual C++ generated resource script.
    //
    #include "resource.h"
    
    #define APSTUDIO_READONLY_SYMBOLS
    /////////////////////////////////////////////////////////////////////////////
    //
    // Generated from the TEXTINCLUDE 2 resource.
    //
    #define APSTUDIO_HIDDEN_SYMBOLS
    #include "windows.h"
    #undef APSTUDIO_HIDDEN_SYMBOLS
    /////////////////////////////////////////////////////////////////////////////
    #undef APSTUDIO_READONLY_SYMBOLS
    
    #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS)
    LANGUAGE 25, 1
    #pragma code_page(1251)
    
    /////////////////////////////////////////////////////////////////////////////
    //
    // Icon
    //
    
    // Icon with lowest ID value placed first to ensure application icon
    // remains consistent on all systems.
    
    IDI_XX       ICON         "xx.ico"
    IDI_SMALL    ICON         "small.ico"
    
    /////////////////////////////////////////////////////////////////////////////
    //
    // Menu
    //
    
    IDC_XX MENU 
    BEGIN
        POPUP "File"
        BEGIN
            MENUITEM "Exit", IDM_EXIT
        END
        POPUP "Help"
        BEGIN
            MENUITEM "About ...",  IDM_ABOUT
        END
    END
    
    
    /////////////////////////////////////////////////////////////////////////////
    //
    // Accelerator
    //
    
    IDC_XX ACCELERATORS
    BEGIN
        "?", IDM_ABOUT,  ASCII,  ALT
        "/", IDM_ABOUT,  ASCII,  ALT
    END
    
    
    /////////////////////////////////////////////////////////////////////////////
    //
    // Dialog
    //
    
    IDD_ABOUTBOX DIALOG   22, 17, 230, 75
    STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
    CAPTION "About"
    FONT 8, "System"
    BEGIN
        ICON            IDI_XX,IDC_MYICON,14,9,16,16
        LTEXT           "xx Version 1.0",
    		       IDC_STATIC,49,10,119,8,SS_NOPREFIX
        LTEXT           "Copyright (C) 2005",
    			IDC_STATIC,49,20,119,8
        DEFPUSHBUTTON   "OK",IDOK,195,6,30,11,WS_GROUP
    END
    
    
    #ifdef APSTUDIO_INVOKED
    /////////////////////////////////////////////////////////////////////////////
    //
    // TEXTINCLUDE
    //
    1 TEXTINCLUDE  
    BEGIN
        "resource.h\0"
    END
    
    2 TEXTINCLUDE  
    BEGIN
        "#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
        "#include ""windows.h""\r\n"
        "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
        "\0"
    END
    
    3 TEXTINCLUDE  
    BEGIN
        "\r\n"
        "\0"
    END
    
    #endif    // APSTUDIO_INVOKED
    
    /////////////////////////////////////////////////////////////////////////////
    //
    // String Table
    //
    
    STRINGTABLE  
    BEGIN
       IDC_XX   "XX"
       IDS_APP_TITLE "xx"
    END
    
    #endif
    /////////////////////////////////////////////////////////////////////////////
    #ifndef APSTUDIO_INVOKED
    /////////////////////////////////////////////////////////////////////////////
    //
    // Generated from the TEXTINCLUDE 3 resource.
    //
    
    /////////////////////////////////////////////////////////////////////////////
    #endif    // not APSTUDIO_INVOKED

    Но такой подход не рекомендуется применять, поскольку малейшая ошибка приведет к разрушению целостности кода.

    Теперь, даже если ничего не редактируя в открытом текстовом файле ресурсов, закрыть его и перейти в окно представления Resource View, то среда выдаст предупреждение о том, что файл ресурсов открывался непосредственно.

    Рассмотрим разделы ресурсов, отображаемые в окне представления Resource View. Еще раз отметим, что при редактировании любого из разделов автоматически запускается редактор, соответствующий типу редактируемого ресурса, а каждый ресурс приложения имеет уникальный идентификатор. Редактирование ресурса начинается с двойного щелчка на идентификаторе ресурса. Добавить новый ресурс можно либо через контекстное меню окна Resource View, либо передать фокус окну Resource View и выполнить команду меню Edit/Add Resource...

    Настройка русского языка. При создании проекта MFC в раскрывающемся списке настройки мастера MFC Application Wizard нет языка Русский изначальной настройки ресурсов для использования в меню, диалоговых окнах и др. Поэтому после создания заготовки приложения каждый ресурс нужно настроить вручную. Сначала нужно выделить соответствующий ресурс, затем в окне Properties выбрать из раскрывающегося списка язык Русский. Без такой настройки все русские символы после компиляции приложения будут выглядеть некорректно.

    Раздел Accelerator ("Горячие" клавиши, клавиши быстрого доступа)

    Это механизм связывания комбинаций клавиш с пунктами меню для быстрого вызова и исполнения команд. Частично "горячие" клавиши генерирует мастер MFC Application Wizard при создании каркаса (работоспособной заготовки) приложения. Но разработчик приложения всегда может их удалить, изменить или ввести новые по своему усмотрению. Редактирумая информация отображается в виде таблицы, поля которой представлены раскрывающимися комбинированными списками. Разработчик приложения всегда может ввести или выбрать необходимые значения.

    За одним и тем же идентификатором меню можно закрепить несколько комбинаций клавиш, создав отдельные строки таблицы.

    Поле Type позволяет устанавливать реагирование приложения на клавиши по ASCII - или Virtual -кодам. Scan -коды в системе DOS соответствовали порядковому номеру расположения клавиши на физической клавиатуре. В связи с возможными различиями в раскладках национальных клавиатур Microsoft ввела замену Scan -кодов на виртуальные коды. Коды клавиш логической клавиатуры имеют префикс VK_ ( virtual key ).

    В раскрывающихся комбинированных списках поля Key клавиши представлены макроопределениями (символическими именами), но можно ввести и числовой код прямо в поле ввода списка.

    Однозначное преобразование специфических для каждой конкретной клавиатуры скан-кодов в коды виртуальных клавиш осуществляют драйверы клавиатуры ( keyboard device driver ). Полученные таким образом коды виртуальных клавиш передаются приложениям в виде сообщений. Причем, кроме сообщения о виртуальном коде нажатой клавиши VK_, Windows генерирует еще два сообщения. Сообщение WM_KEYDOWN означает, что клавиша на клавиатуре была нажата, а WM_KEYUP - отпущена.

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

    Раздел Dialog (диалоговые окна)

    Приложение получает от пользователя информацию посредством диалоговых окон. Диалоговые окна проектируются в среде Studio .NET в два этапа. Вначале создается ресурс диалогового окна со всеми необходимыми управляющими элементами. Этот ресурс будет играть роль визуального представления диалогового окна в работающем приложении. На втором этапе для управления ресурсом и его элементами необходимо создать класс диалогового окна и с помощью значений атрибутов этого класса определить свойства, а с помощью методов - поведение ресурса при взаимодействии с пользователем.

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

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

    Для вставки управляющих элементов диалогового окна используется технология WYSIWYG ( What You See Is What You Get - что видишь, то и получаешь). Разработчик может либо перетащить интересующий его элемент из Toolbox на диалоговую панель, либо выделив пиктограмму элемента, щелкнуть мышью в нужном месте размещения управляющего элемента. Можно менять местоположение и размеры элементов и самой диалоговой панели, перетаскивая их мышью или растягивая за боковые маркеры. В строке состояния редактора диалоговых ресурсов отражаются размеры и координаты выделенных элементов.

    Данный метод редактирования диалоговых окон стал одной из причин появления в названии среды разработки слова "visual - визуальный". Он позволяет быстро настраивать внешний вид пользовательского интерфейса без каких-либо усилий по программированию размеров, относительного положения и т.д.

    Дополнительную поддержку визуального проектирования диалоговых панелей оказывает панель инструментов Dialog Editor, которую можно вызвать так, как рассмотрено в разделе "Панели инструментов". Сама панель имеет вид

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

    Чтобы создать новую заготовку ресурса диалогового окна, нужно выделить в панели Resource View любой узел ресурса и через контекстное меню вызвать окно добавления ресурса

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

    Аналогичный результат можно получить, если выделить любой узел ресурса в панели Resource View и через главное меню среды выполнить команду Project/Add Resource...

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

    Раздел Icon (пиктограммы, иконки)

    Пиктограммы - это небольшие растровые изображения, которые значками представляют программу или созданные с ее помощью документы. Стандартный размер пиктограммы 32х32 пиксела. Эта пиктограмма обычно находится на рабочем столе в качестве ярлыка или в окне About (О программе). Существует также вариант размером 16х16 пикселов, отображаемый вначале заголовка окна приложения и на панели задач ( Taskbar ). Уменьшенная пиктограмма представлена ресурсом IDI_SMALL. Идентификаторы ресурсов пиктограмм имеют префикс IDI_.

    Фактически ресурс иконок содержит не одну, а набор пиктограмм, заготовленных для применения в различных ситуациях и содержащихся в графическом файле с расширением *.ico. Чтобы их посмотреть, нужно открыть редактор ресурса пиктограмм и через появившийся дополнительный пункт главного меню Image или контекстное меню редактора выбрать пункт Current Icon Image Types.

    Для рисования пиктограмм среда предоставляет простой графический редактор наподобие Microsoft Paint или Microsoft Paintbrush.

    Раздел Menu (меню)

    С помощью команд меню пользователи управляют программой. Окно Resource View обеспечивает доступ к ресурсу меню через запуск редактора меню двойным щелчком на идентификаторе ресурса.

    Запускается редактор меню, в котором создается визуальная заготовка меню

    Работа редактора меню поддерживается через меню среды IDE или контекстное меню.

    Каждый пункт визуального представления меню имеет ряд характеристик, которые доступны через окно Properties. Каждый пункт имеет свой идентификатор ID_, который формируется редактором меню автоматически как цепочка названий пунктов, ведущих к данному элементу. Например, элементу New меню File назначается имя ID_FILE_NEW.

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

  • вначале присвоить элементам меню латиницу и после того, как на основании этого редактор меню автоматически сформирует корректные имена идентификаторов, изменить названия пунктов на русские
  • сформировать элементы меню с русскими названиями, затем скорректировать идентификаторы меню
  • Идентификаторы меню редактируются либо в редакторе меню, либо в инспекторе свойств (окно Properties ). При редактировании в редакторе меню нужно включить режим Edit IDs через контекстное меню редактора или IDE.

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

    Рассмотрим основные поля инспектора свойств для элементов меню:

  • ID (идентификатор ресурса) - уникальным образом идентифицирует элемент меню в приложении. Применяется для связывания с горячими клавишами и кнопками панели инструментов.
  • Caption (надпись пункта) - текст, который содержится в данном пункте меню. Для быстрого исполнения команды по клавише с определенным символом этот символ подчеркивается предваряющим амперсантом . К тексту может присоединяться название горячих клавиш. Например, New\tCtrl+N, где \t - управляющий символ табуляции, будет визуально представлено New Ctrl+N
  • Prompt (подсказки) - текст, который появляется в строке состояния, когда подсвечивается элемент меню (длинная подсказка), либо всплывающая подсказка, которая появляется при наведении курсора мыши на кнопку, соответствующую этому элементу меню на панели инструментов. Например, если в поле Prompt ввести строку Create a new document\nNew, то в строке состояния будет появляться длинная подсказка (до управляющего символа \n - новая строка), вторая часть строки будет всплывающей подсказкой при наведении курсора на кнопку панели инструментов с тем же идентификатором, что и элемент меню.
  • Раздел String Table (таблица строк)

    Таблица строк - это список всех текстовых строк приложения. Разумеется, для многих строк (например, статического текста диалоговых окон или подсказок для элементов меню) существуют и более простые способы доступа, нежели через таблицу строк, однако некоторые строки могут быть доступны только здесь. К примеру, в таблицу строк можно внести имя или значение как заготовку по умолчанию, которую затем можно изменить без перекомпилирования кода всего приложения, а только перекомпилировать код ресурсов и выполнить перекомпоновку (линковку) приложения.

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

    Таблица строк имеет поля редактирования ID (символическое имя идентификатора ресурса), Value (числовое значение идентификатора ресурса) и Caption (текстовое значение, закрепленное за идентификатором ресурса).

    Раздел Version (информация о версии)

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

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

    При редактировании этого ресурса применяется контекстное меню, но прежде, чем менять автоматически сгенерированную информацию, нужно хорошо знать ее назначение.

    Раздел Toolbar (панели инструментов)

    Панели инструментов, это группы маленьких кнопок, расположенные, как правило, прямо под строкой главного меню приложения. Каждая кнопка связана со своим пунктом меню, а ее внешний вид зависит от состояния этого пункта. Если соответствующий пункт меню Disabled - недоступен ( Enabled == FALSE ), то внешний вид и этого пункта и соответствующей кнопки будет затенен. Если элемент меню выбран, соответствующая кнопка обычно отображается в "нажатом" состоянии. Кнопки панелей инструментов являются индикаторами состояния пунктов меню, а также еще одним быстрым способом подачи команд приложению.

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

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

    Другие полезные окна

    Окно Object Browser (обозреватель объектов) - представляет информацию в более расширенном варианте, чем окно Class View.

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

    Окно Macro Explorer (обозреватель макросов) - позволяет запускать собственные макросы или макросы, поставляемые вместе с Visual Studio. Макросы пишутся на языке Visual Basic и используют объектную модель Visual Studio.

    Окно Task List (список задач) - "амбарная книга" поставленных и выполненных задач. Заполняется самой средой при возникновении ошибок или разработчиком проекта. Новые задания можно добавлять, отмечать как выполненные или удалять. Это своего рода записная книжка программиста - пользователя среды IDE.

    Окно Command Window (командное окно) - простой интерфейс командной строки для среды Visual Studio. Практически каждое действие по управлению оболочкой может быть выполнено из этого окна. Это окно сохраняет историю введенных команд, которую можно прокручивать стрелками. Как правило, окно Command Window применяется для быстрого выполнения команд, запрятанных глубоко в меню или доступных только посредством вызова многочисленных диалоговых окон.

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

    Окно Find Result 1 (результаты поиска 1) - отображает результаты поиска, выполненного с помощью команды Find in Files (найти в файлах).

    Окно Find Result 2 (результаты поиска 2) - еще одно окно, которое отображает результаты поиска, выполненного с помощью команды Find in Files (найти в файлах). Наличие второго окна позволяет сохранить в первом результаты предыдущего поиска.

    Окно Find Symbol Result (результаты поиска идентификаторов) - отображает результаты выполнения команды Find Symbol (найти идентификатор) и Quick Find Symbol (быстрый поиск идентификаторов). Двойной щелчок на найденном идентификаторе открывает в рабочей области файл, в котором используется этот идентификатор. Сам идентификатор при этом соответствующим образом выделяется.

    Окно Favorites (избранное) - открывает папку избранное обозревателя Internet Explorer. Это позволяет управлять содержимым папки Избранное и открывать Web -ресурсы, не покидая пределов Visual Studio.

    Любой из этих инструментов можно вызвать также через кнопки панели инструментов Standard или их раскрывающийся список.

    Окно представления Properties (инспектор свойств)

    Свойства определяют характеристики объектов, такие как место расположения, размер, стиль, цвет и т.д. Свойства разбиты на категории:

  • Accessibility (доступность)
  • Appearance (отображение) - определяет цвета, выравнивание, текстовые надписи, которые будут отображаться на объекте
  • Behavior (поведение) - определяет, как объект будет себя вести, когда пользователь щелкнет кнопкой мыши или нажмет клавишу
  • Configurations (конфигурация)
  • Data (данные) - связывает объект с информацией, сохраненной в базе данных
  • Design (проект) - определяет имя объекта, может ли он перемещаться и будет ли отображаться для других частей программы
  • Focus (фокус) - определяет действия объекта в момент выбора его пользователем
  • Layout (размещение) - определяет размер объекта и размещение его на экране
  • Верхняя часть окна Properties содержит панель инструментов,

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

  • Categorized (упорядочить по категориям)
  • Alphabetic (упорядочить по алфавиту)
  • Properties (отобразить свойства)
  • Events (отобразить связанные события)
  • Свойства объектов меняют двумя способами:

  • на стадии проектирования (разработки интерфейса)
  • во время выполнения программы
  • Управление размещением окон

    Управление размещением панелей

    Панели могут размещаться несколькими способами

  • Dockable - способность приклеивания к любой стороне рабочей области или встраивания в другую панель. Панель, находясь в этом состоянии, может быть визуально приклеена, либо отстыкована от соответствующей границы рабочей области. Изменение визуального расположения панели выполняется двойным щелчком мыши на ее заголовке.
  • Hide - закрытие панели (через этот пункт меню или через стандартную кнопку закрытия на заголовке панели)
  • Floating - свободное плавающее состояние панели
  • Auto Hide - панель, автоматически всплывающая при наведении на ее пиктограмму курсора мыши. Включить этот режим состояния панели при включенном состоянии Dockable можно также через кнопку ее заголовка, имеющую вид заколки.
  • Переключать режимы состояния панели можно через контекстное меню ее заголовка

    или через главное меню IDE

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

    Управление размещением окон

    Окна в рабочей области могут размещаться в двух режимах:

  • Tabbed documents - расположить в форме вкладок
  • MDI environment - расположить в форме многодокументного интерфейса
  • Режимы размещения основных окон устанавливаются командой Tools/Options... после перезапуска оболочки.

    В режиме расположения окон в форме многодокументного интерфейса в главном меню Window становятся доступными команды

  • Cascade
  • Tile Horizontally
  • Tile Vertically
  • В нижней части меню Window содержится список открытых окон редактирования, из которого можно активизировать то или иное открытое окно.

    Начальная страница и настройка профилей

    Программу IDE можно настроить так, чтобы при каждом новом ее запуске автоматически раскрывалась вкладка панели Start Page (через меню Tools/Options...).

    Эта панель начальной страницы удобна для настройки внешнего вида среды (профиля), быстрого открытия последних проектов, подкачки внешних сетевых ресурсов. Она представляет собой графический интерфейс, основанный на HTML -коде.

    Начальная страница изменяется в зависимости от ежемесячно проводимых Microsoft технологических доработок бета-версии. Панель начальной страницы Start Page, открытая на вкладке Projects, может выглядеть так

    Верхняя часть панели Start Page содержит вкладки для быстрого переключения между различным режимами ее работы.

    Вкладка Projects

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

    Вкладка My Profile (мой профиль)

    позволяет настроить внешнее представление среды IDE в соответствии с предпочтениями пользователя (пользователем считается разработчик проекта приложения). Вид вкладки такой

    Раздел Profile: содержит раскрывающийся список, в котором можно выбрать наиболее предпочтительный вариант настройки

    Раздел Keyboard Scheme: (раскладка клавиатуры)

    Раздел Window Laout: (параметры окон)

    Раздел Help Filter: (фильтр окон справки)

    Раздел Show Help: (отображать справку) содержит две опции: Internal Help (внутренняя справка) и External Help (внешняя справка). Выбор первой опции открывает справку непосредственно в IDE, второй - в отдельном окне.

    Раздел At Startup: (при запуске) позволяет выбрать, что именно открывается при запуске IDE

    Здесь можно выбрать следующее:

  • Show Start Page - открыть начальную страницу
  • Load last loaded Solution - открыть решение, редактируемое последним
  • Show Open Project dialog box - вывести диалоговое окно "Open Project" (Открыть проект)
  • Show New Project dialog box - вывести диалоговое окно "New Project" (Новый проект)
  • Show empty environment - открыть окно для создания пустого приложения
  • Система меню IDE

    Система меню позволяет эффективно управлять оболочкой IDE. Строка главного меню открытого документа (приложения) состоит из девяти пунктов:

  • File (файл) - для манипуляций с файлами, например, открытие, закрытие, печать
  • Edit (правка) - для копирования, вырезания, вставки, поиска и перемещения по тексту исходного кода
  • View (вид) - настраивает внешний вид рабочей области и управляет отображением рабочих панелей
  • Build (сборка) - для компиляции, компоновки и развертывании решения
  • Debug (отладка) - предназначено для отладки решения
  • Data (данные) - для дизайнера форм
  • Format (управление расположением визуальных компонентов) - для дизайнера форм
  • Tools (сервис) - обеспечивает настройку IDE и вызов отдельных служебных программ (утилит)
  • Window (окно) - предназначено для выбора активного окна или взаимного расположения окон рабочей области
  • Help (справка, помощь) - обеспечивает доступ к встроенной справочной системе ( MSDN )
  • Использование меню File

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

    Команда File/New (Создать новый)

    Позволяет создавать следующие объекты

  • Project ...(проект) - открывает диалоговое окно New Project. Это окно позволяет добавить к существующему решению проекты различных типов либо создать для проекта новое решение
  • File...(файл) - открывает диалоговое окно New File. Новые файлы создаются физически, но не добавляются при этом к проекту автоматически. Чтобы добавить существующий файл в проект, нужно выполнить команду Project/Add Existing Item...
  • Blank Solution...(новое решение) - открывает диалоговое окно New Project с выбранным шаблоном и переключателем, установленным в положение Close Solution (закрыть текущее решение)
  • Команда File/Open (Открыть существующий)

    Это меню позволяет открывать следующие объекты

  • Project... (проект) - открывает диалоговое окно Open Project. С его помощью можно открыть любое решение или проект Visual Studio. По умолчанию в списке Files of type выбран фильтр All Project Files, что позволяет открывать проекты и решения на основе любых шаблонов, включая и старые. Можно задать и более конкретный фильтр
  • Project From Web... (проект из Web ) - позволяет открыть проекты, находящиеся по указанному адресу URL
  • File... (файл) - вызывает стандартное окно открытия файла.
  • File From Web... (файл из Web ) - позволяет открыть файл, находящийся по указанному адресу URL
  • Convert... (конвертировать) - позволяет конвертировать проект с языка Java в Visual C#.NET или с Visual Basic 6.0 в Visual Basic .NET
  • Команда File/Close (Закрыть текущий)

    Закрывает файл, открытый в IDE. Та же команда имеется в контекстном меню вкладки текущего файла рабочей области.

    Команда File/Add New Item... (Добавить новый элемент)

    Аналогична команде File/New/File..., но автоматически добавляет созданный файл в текущий проект.

    Команда File/Add Existing Item... (Добавить существующий элемент)

    Аналогична команде File/Open/File..., однако автоматически добавляет открываемый файл в существующий проект.

    Команда File/Add Project (Добавить в текущее решение еще один проект)

    Добавляет проект.

    Команда File/Open Solution... (Открыть решение)

    Если было открыто решение, то оно закрывается с предупреждением о необходимости сохранения, если была модификация.

    Команда File/Close Solution (Закрыть решение)

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

    Команда File/Save (Сохранить текущий файл такой-то)

    Сохраняет текущий файл редактирования. Та же команда имеется в контекстном меню вкладки текущего файла рабочей области. Имеется кнопка на панели инструментов Standard.

    Команда File/Save As... (Сохранить текущий файл такой-то под другим именем)

    Открывает стандартное диалоговое окно Save File As.

    Команда File/Save All (Сохранить все измененные файлы)

    Сохраняет все открытые в среде и модифицированные файлы под теми же именами. Имеется кнопка на панели инструментов Standard. Все файлы также автоматически сохраняются перед началом каждого этапа компиляции.

    Команда File/Source Control (Контроль исходного кода)

    Типы проектов

    При выполнения пункта меню New/Project появляется окно мастера, которое имеет вид

    Тип проекта C#

    Для типа проекта C# можно создать следующие виды шаблонов

  • Windows Application - приложение Windows для локального компьютера
  • Class Library - создание библиотечного файла DLL
  • Windows Control Library - создание библиотечного элемента управления
  • Smart Device Application
  • ASP.NET Web Application - Web -приложение ASP.NET
  • ASP.NET Web Service - создание web -сервиса
  • ASP.NET Mobile Web Application
  • Web Control Library - создание элемента управления Web
  • Console Application - создание консольного приложения
  • Windows Service - создание службы Windows
  • Empty Project - создание пустого проекта
  • Empty Web Project - создание пустого Web -проекта
  • New Project In Existing Folder - добавление нового проекта в существующую папку
  • Страницы:

    Панели инструментов и окна - инспекторы

    Пакет Microsoft Visual Studio.NET является интегрированной средой разработки ( IDE - Integrated Development Environment ), потому что с помощью одного только этого средства, не прибегая к помощи других, можно выполнить многое, а именно:

  • генерировать "скелет" приложения без написания кода вручную
  • открывать проект в нескольких различных режимах представления
  • редактировать все составляющие кода как вручную, так и с помощью мастеров
  • разрабатывать визуальный интерфейс (меню и диалоговые окна)
  • подключаться к внешним ресурсам - например, к базам данных
  • компилировать и линковать исходный код
  • отлаживать приложение в процессе его работы
  • Пока мы будем говорить о самой среде. Среда разработки Visual Studio.NET имеет единый интерфейс для всех включенных в нее языков программирования.

    Типовой вид главного окна среды разработки следующий:

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

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

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

    Панели инструментов

    Панели инструментов среды расположены на своем традиционном месте - в верхней части окна ниже главного меню программы. Изначально в окне представлена только одна панель инструментов Standard. Заготовлено много панелей инструментов, которые пользователь может вызывать по своему желанию либо через контекстное меню при правом щелчке на свободном месте области размещения панелей инструментов (под главным меню), либо командой View/Toolbars.

    То же самое можно сделать через меню Tools/Customize, вызвав диалоговое окно Customize и открыв его на вкладке Toolbars.

    Элементы панели инструментов означают следующее:

  • Build (Сборка)
  • Crystal Reports - Insert (генератор отчетов - вставка)
  • Crystal Reports - Main (генератор отчетов - главное)
  • Data Design (проектирование данных)
  • Database Diagram (диаграмма базы данных)
  • Debug (отладка)
  • Debug Location (отладочный каталог)
  • Design (проектирование)
  • Dialog Editor (диалоговый редактор)
  • Formatting (форматирование)
  • Full Screen (полный экран)
  • HTML Editor (редактор HTML )
  • Image Editor (редактор изображений)
  • Layout (схема)
  • MenuBar ( панель меню)
  • Query (запрос)
  • Recorder (запись)
  • Source Control (управление исходным кодом)
  • Standard (стандартная)
  • Style Sheet (таблицы стилей)
  • Table (таблица)
  • Text Editor (текстовый редактор)
  • View (вид)
  • Web (веб)
  • XML Data (данные XML )
  • XML Schema (схема XML )
  • Панели инструментов могут приклеиваться ( Dockable )

    или быть свободными (находиться в плавающем состоянии как обычные окна программы).

    Более того, панель инструментов можно приклеить к любому краю главного окна - рамки: сверху, снизу, слева, справа, а также расположить выше главного меню.

    Для этого нужно зацепить панель мышью за свободное место или за полосу-поводок и перетянуть на требуемое место. Панель инструментов запоминает свое новое местоположение и после сокрытия при повторном вызове появляется там же. Любые панели в свободном состоянии располагаются поверх всех приклеенных окон среды. Выполнив правый щелчок на любой свободной панели инструментов можно вызвать контекстное меню включения или сокрытия панелей.

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

    Окна представлений (просто панели)

    В Visual Studio.NET каждое отдельное приложение рассматривается как решение ( solution ), состоящее из нескольких проектов ( project ). Проект представляет собой собрание файлов:

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

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

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

    Несколько важных панелей разработчик приложения использует постоянно или очень часто. Эти панели вызываются из меню View

    Наша задача на данном этапе - посмотреть внешние свойства этих панелей: как они вызываются и как настроить их внешний вид.

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

    Чтобы не загромождать рабочее пространство экрана, подавляющее число окон можно сделать выпадающими ( flu-out или Auto Hide ), которые появляются на экране как временные. Когда пользователь IDE работает с другой областью экрана, выпадающее окно отображается свернутым в виде пиктограммы с названием окна. Если же на эту пиктограмму навести курсор мыши, то оно мгновенно разворачивается.

    Эти окна инструментов можно делать прикрепляемыми ( Dockable ) к любой границе рабочей области, можно делать свободно плавающими ( Floating ). Свойства окон настраиваются через контекстное меню заголовка окна или, для активного окна, через меню Window. Окна можно встраивать друг в друга, перетаскивая их за заголовок в другое закрепленное окно. При этом взаимное расложение окон в общем контейнере может быть пристыкованным по вертикали ( Tile Vertically ),

    горизонтали ( Tile Horizontally )

    или совмещенным ввиде вкладок

    Окно представления Solution Explorer (проводник решений)

    Проводник решений отображает все файлы, связанные с текущим решением или проектом и позволяет быстро открывать любой из них на редактирование своим контекстным редактором со всеми необходимыми возможностями. Так, если открывается файл исходного кода, то запускается текстовый редактор. При открытии файла иконок, запускается графический редактор, а при редактировании диалоговых окон - редактор визуального проектирования диалоговых окон (через окно представления Resource View ).

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

  • Source Files - файлы исходного кода на C++ (где содержатся определения функций и методов программного кода)
  • Header Files - файлы заголовков (где содержатся объявления классов и прототипы функций)
  • Resource Files - файлы ресурсов (содержат описания диалоговых окон, пиктограмм, иконок, элементов управления)
  • Контекстное меню для элементов представления Solution Explorer позволяет быстро вызвать необходимую команду, например, удалить файл из решения (проекта), при этом среда лишь выводит его из состава проекта, но не удаляет физически. Для разных типов файлов вызывается контектсное меню, специфическое именно для файлов данного типа.

    Двойной левый щелчок на каком-либо файле представления Solution Explorer запускает редактор этого файла, также специфический именно для файла данного типа.

    Окно представления Class View (просмотр классов)

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

    Оно отображает классы, используемые в данном приложении. Представление также организовано в виде дерева с раскрывающимися узлами - классами, в которых перечислены базовые классы, атрибуты и методы. Вначале идут методы, помеченные фиолетовой пиктограммой, а затем - атрибуты, помеченные пиктограммой бирюзового цвета. Рядом с пиктограммой защищенных членов класса (protected) нарисован ключ, а рядом с закрытыми членами класса (private) - маленький замочек.Общедоступные члены класса ( public ) отображаются без замочков и ключей.

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

    Контекстное меню класса в окне представления Class View

    Щелчок на имени класса правой кнопкой мыши приводит к вызову контекстного меню

    Оно содержит следующие команды:

  • Go To Definition (перейти к определению) - открывает файл заголовка (файл с расширением .h ) в том месте, где был объявлен этот класс.
  • Browse Definition (обзор определений) - открывает окно Object Browser (Обозреватель объектов) и подсвечивает в нем имя данного класса.
  • Quick Find Symbol (быстрый поиск символов) - находит все символы (имена классов, функций, переменных), совпадающие с именем данного класса.
  • Add/Add Function (добавить/добавить функцию) - открывает мастер Add Member Function Wizart (мастер добавления методов).
  • Мастер добавляет объявление функции-члена в файл заголовка с описанием класса ( *.h ), а заготовку ее определения - в файл определений функций-членов класса ( *.cpp ). Диалоговое окно мастера имеет вид

  • Add/Add Variable (добавить/добавить переменную) - открывает мастер Add Member Variable Wizard (мастер добавления атрибута).
  • Мастер добавляет объявление переменной-члена в файл заголовка с описанием класса ( *.h ), а в файл ( *.cpp ) определения конструктора класса или функцию инициализации - установку, по возможности, начального значения этой переменной. Диалоговое окно мастера имеет вид

  • Copy (копировать) - копирует имя класса в буфер обмена, после чего его можно куда-нибудь вставить.
  • Sort Alphabetically (сортировать по алфавиту) - отображает в окне представления Class View узлы классов всего приложения или вложенные узлы конкретного класса в алфавитном порядке
  • узлы атрибутов
  • узлы методов
  • узел карты ( Maps )
  • узел базовых классов и интерфейсов ( Bases and Interfaces )
  • узел макроопределений и констант ( Macros and Constants )
  • Sort By Type (сортировать по типу) - отображает в окне представления Class View узлы классов всего приложения или вложенные узлы конкретного класса, отсортированные по типу. Вначале идут методы, затем атрибуты и т.д.
  • Sort By Access (сортировать по атрибутам доступа) - отображает в окне представления Class View узлы классов всего приложения или вложенные узлы конкретного класса, отсортированные по уровню доступа. Вначале идут элементы, не содержащие программный код, затем открытые элементы ( public ), затем закрытые элементы ( private ), затем защищенные элементы ( protected ). Внутри каждой категории элементы сортируются в алфавитном порядке.
  • Group By Type (сгруппировать по типу) - группирует все методы в одну вложенную папку Functions, а все атрибуты - в другую вложенную папку Variables.
  • Нужный режим сортировки можно установить и через кнопку с раскрывающимся списком в левом верхнем углу панели представления Class View

  • Properties (свойства) - открывает окно представления свойств класса, для которого было вызвано контекстное меню. Такой же результат можно получить, выделив требуемый класс в окне Class View, а затем выполнив команду View/Properties Window в главном меню.
  • Контекстное меню функции в окне представления Class View

    Щелчок правой кнопкой мыши на имени метода в окне представления Class View приводит к появлению на экране контекстного меню

    Оно содержит следующие команды:

  • Go To Definition (перейти к определению) - открывает файл, содержащий определение данной функции, и выделяет это место.
  • Go To Declaration (перейти к объявлению) - открывает файл, в котором объявлена данная функция (прототип для глобальной функции или объявление в классе для функции-члена), и выделяет это место.
  • Browse Definition (обзор определений) - открывает окно Object Browser (обозреватель объектов) и выделяет в нем имя указанной функции.
  • Quick Find Symbol (быстрый поиск символов) - находит все символы в приложении, совпадающие с именем данной функции, и отображает результаты поиска в окне Find Symbol Results (результаты поиска символов).
  • Copy (копировать) - Копирует имя функции в буфер обмена для последующей вставки куда-либо.
  • Команды сортировки рассмотрены ранее применительно к контекстному меню класса.
  • Properties (свойства) - отображает окно Properties со свойствами данной функции. Такой же результат можно получить, выделив требуемую функцию в окне Class View, а затем выполнив команду View/Properties Window в главном меню.
  • Контекстное меню переменной в окне представления Class View

    Правый щелчок мыши на имени атрибута приводит к появлению на экране контекстного меню

    Оно содержит следующие команды:

  • Go To Definition (перейти к определению) - открывает файл, содержащий определение данной переменной, и выделяет это место.
  • Browse Definition (обзор определений) - открывает окно Object Browser (обозреватель объектов) и выделяет в нем имя указанной переменной.
  • Quick Find Symbol (быстрый поиск символов) - находит все символы в приложении, совпадающие с именем данной переменной, и отображает результаты поиска в окне Find Symbol Results (результаты поиска символов).
  • Copy (копировать) - Копирует имя функции в буфер обмена для последующей вставки куда-либо.
  • Команды сортировки рассмотрены ранее применительно к контекстному меню класса.
  • Properties (свойства) - отображает окно Properties со свойствами данной переменной. Такой же результат можно получить, выделив требуемую переменную в окне Class View, а затем выполнив команду View/Properties Window в главном меню.
  • Окно представления Resource View (просмотр ресурсов)

    Традиционно визуальные элементы приложения Microsoft организует в виде ресурсов, в которые включены

  • горячие клавиши ( Accelerator )
  • рисунки ( Bitmap )
  • курсоры ( Cursor )
  • диалоговые окна ( Dialog )
  • скрипты HTML ( HTML )
  • пиктограммы ( Icon )
  • меню ( Menu )
  • таблицы строк ( String Table )
  • информация о версии ( Version )
  • панели инструментов ( Toolbar )
  • В окне представления Resource View ресурсы приложения представлены также в виде папок с соответствующими типами ресурсов.

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

    Ресурсы хранятся в виде описания на специальном языке в файле ресурсов с расширением *.r c (после компиляции - в файле с расширением *.re s ). Имя файла ресурсов совпадает с именем приложения. Этому файлу соответствует файл заголовка со стандартным именем Resource. h, в котором содержатся макроопределения соответствия идентификаторов ресурсов числовым значениям.

    //{{NO_DEPENDENCIES}}
    // Microsoft Visual C++ generated include file.
    // Used by xx.rc
    //
    
    #define IDS_APP_TITLE			103
    
    #define IDR_MAINFRAME			128
    #define IDD_XX_DIALOG			102
    #define IDD_ABOUTBOX			103
    #define IDM_ABOUT			104
    #define IDM_EXIT			105
    #define IDI_XX				107
    #define IDI_SMALL			108
    #define IDC_XX				109
    #define IDC_MYICON			2
    #define IDC_STATIC			-1
    // Next default values for new objects
    // 
    #ifdef APSTUDIO_INVOKED
    #ifndef APSTUDIO_READONLY_SYMBOLS
    
    #define _APS_NO_MFC			130
    #define _APS_NEXT_RESOURCE_VALUE	129
    #define _APS_NEXT_COMMAND_VALUE	32771
    #define _APS_NEXT_CONTROL_VALUE	1000
    #define _APS_NEXT_SYMED_VALUE		110
    #endif
    #endif

    К содержимому файла Resource.h можно получить доступ через меню Edit/Resource Symbols

    или через контекстное меню панели представления Resource View

    При получения доступа через контекстное меню в панели Resource View должен быть выделен узел ресурса, а не узел проекта. Пример представления файла Resource.h в среде Studio .NET имеет вид

    Исходный файл ресурсов можно открыть непосредственно в текстовом редакторе и, зная язык описания ресурсов, редактировать их на этом языке. Открыть файл ресурсов через текстовый редактор среды Studio .NET можно так:

  • выделить курсором любой ресурс в окне представления Resource View
  • через меню View/Open With...
  • вызвать диалоговое окно выбора редактора

  • после нажатия кнопки Open появится текст файла ресурсов, описывающий ресурсы приложения на языке ресурсов
  • //Microsoft Visual C++ generated resource script.
    //
    #include "resource.h"
    
    #define APSTUDIO_READONLY_SYMBOLS
    /////////////////////////////////////////////////////////////////////////////
    //
    // Generated from the TEXTINCLUDE 2 resource.
    //
    #define APSTUDIO_HIDDEN_SYMBOLS
    #include "windows.h"
    #undef APSTUDIO_HIDDEN_SYMBOLS
    /////////////////////////////////////////////////////////////////////////////
    #undef APSTUDIO_READONLY_SYMBOLS
    
    #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS)
    LANGUAGE 25, 1
    #pragma code_page(1251)
    
    /////////////////////////////////////////////////////////////////////////////
    //
    // Icon
    //
    
    // Icon with lowest ID value placed first to ensure application icon
    // remains consistent on all systems.
    
    IDI_XX       ICON         "xx.ico"
    IDI_SMALL    ICON         "small.ico"
    
    /////////////////////////////////////////////////////////////////////////////
    //
    // Menu
    //
    
    IDC_XX MENU 
    BEGIN
        POPUP "File"
        BEGIN
            MENUITEM "Exit", IDM_EXIT
        END
        POPUP "Help"
        BEGIN
            MENUITEM "About ...",  IDM_ABOUT
        END
    END
    
    
    /////////////////////////////////////////////////////////////////////////////
    //
    // Accelerator
    //
    
    IDC_XX ACCELERATORS
    BEGIN
        "?", IDM_ABOUT,  ASCII,  ALT
        "/", IDM_ABOUT,  ASCII,  ALT
    END
    
    
    /////////////////////////////////////////////////////////////////////////////
    //
    // Dialog
    //
    
    IDD_ABOUTBOX DIALOG   22, 17, 230, 75
    STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
    CAPTION "About"
    FONT 8, "System"
    BEGIN
        ICON            IDI_XX,IDC_MYICON,14,9,16,16
        LTEXT           "xx Version 1.0",
    		       IDC_STATIC,49,10,119,8,SS_NOPREFIX
        LTEXT           "Copyright (C) 2005",
    			IDC_STATIC,49,20,119,8
        DEFPUSHBUTTON   "OK",IDOK,195,6,30,11,WS_GROUP
    END
    
    
    #ifdef APSTUDIO_INVOKED
    /////////////////////////////////////////////////////////////////////////////
    //
    // TEXTINCLUDE
    //
    1 TEXTINCLUDE  
    BEGIN
        "resource.h\0"
    END
    
    2 TEXTINCLUDE  
    BEGIN
        "#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
        "#include ""windows.h""\r\n"
        "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
        "\0"
    END
    
    3 TEXTINCLUDE  
    BEGIN
        "\r\n"
        "\0"
    END
    
    #endif    // APSTUDIO_INVOKED
    
    /////////////////////////////////////////////////////////////////////////////
    //
    // String Table
    //
    
    STRINGTABLE  
    BEGIN
       IDC_XX   "XX"
       IDS_APP_TITLE "xx"
    END
    
    #endif
    /////////////////////////////////////////////////////////////////////////////
    #ifndef APSTUDIO_INVOKED
    /////////////////////////////////////////////////////////////////////////////
    //
    // Generated from the TEXTINCLUDE 3 resource.
    //
    
    /////////////////////////////////////////////////////////////////////////////
    #endif    // not APSTUDIO_INVOKED

    Но такой подход не рекомендуется применять, поскольку малейшая ошибка приведет к разрушению целостности кода.

    Теперь, даже если ничего не редактируя в открытом текстовом файле ресурсов, закрыть его и перейти в окно представления Resource View, то среда выдаст предупреждение о том, что файл ресурсов открывался непосредственно.

    Рассмотрим разделы ресурсов, отображаемые в окне представления Resource View. Еще раз отметим, что при редактировании любого из разделов автоматически запускается редактор, соответствующий типу редактируемого ресурса, а каждый ресурс приложения имеет уникальный идентификатор. Редактирование ресурса начинается с двойного щелчка на идентификаторе ресурса. Добавить новый ресурс можно либо через контекстное меню окна Resource View, либо передать фокус окну Resource View и выполнить команду меню Edit/Add Resource...

    Настройка русского языка. При создании проекта MFC в раскрывающемся списке настройки мастера MFC Application Wizard нет языка Русский изначальной настройки ресурсов для использования в меню, диалоговых окнах и др. Поэтому после создания заготовки приложения каждый ресурс нужно настроить вручную. Сначала нужно выделить соответствующий ресурс, затем в окне Properties выбрать из раскрывающегося списка язык Русский. Без такой настройки все русские символы после компиляции приложения будут выглядеть некорректно.

    Раздел Accelerator ("Горячие" клавиши, клавиши быстрого доступа)

    Это механизм связывания комбинаций клавиш с пунктами меню для быстрого вызова и исполнения команд. Частично "горячие" клавиши генерирует мастер MFC Application Wizard при создании каркаса (работоспособной заготовки) приложения. Но разработчик приложения всегда может их удалить, изменить или ввести новые по своему усмотрению. Редактирумая информация отображается в виде таблицы, поля которой представлены раскрывающимися комбинированными списками. Разработчик приложения всегда может ввести или выбрать необходимые значения.

    За одним и тем же идентификатором меню можно закрепить несколько комбинаций клавиш, создав отдельные строки таблицы.

    Поле Type позволяет устанавливать реагирование приложения на клавиши по ASCII - или Virtual -кодам. Scan -коды в системе DOS соответствовали порядковому номеру расположения клавиши на физической клавиатуре. В связи с возможными различиями в раскладках национальных клавиатур Microsoft ввела замену Scan -кодов на виртуальные коды. Коды клавиш логической клавиатуры имеют префикс VK_ ( virtual key ).

    В раскрывающихся комбинированных списках поля Key клавиши представлены макроопределениями (символическими именами), но можно ввести и числовой код прямо в поле ввода списка.

    Однозначное преобразование специфических для каждой конкретной клавиатуры скан-кодов в коды виртуальных клавиш осуществляют драйверы клавиатуры ( keyboard device driver ). Полученные таким образом коды виртуальных клавиш передаются приложениям в виде сообщений. Причем, кроме сообщения о виртуальном коде нажатой клавиши VK_, Windows генерирует еще два сообщения. Сообщение WM_KEYDOWN означает, что клавиша на клавиатуре была нажата, а WM_KEYUP - отпущена.

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

    Раздел Dialog (диалоговые окна)

    Приложение получает от пользователя информацию посредством диалоговых окон. Диалоговые окна проектируются в среде Studio .NET в два этапа. Вначале создается ресурс диалогового окна со всеми необходимыми управляющими элементами. Этот ресурс будет играть роль визуального представления диалогового окна в работающем приложении. На втором этапе для управления ресурсом и его элементами необходимо создать класс диалогового окна и с помощью значений атрибутов этого класса определить свойства, а с помощью методов - поведение ресурса при взаимодействии с пользователем.

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

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

    Для вставки управляющих элементов диалогового окна используется технология WYSIWYG ( What You See Is What You Get - что видишь, то и получаешь). Разработчик может либо перетащить интересующий его элемент из Toolbox на диалоговую панель, либо выделив пиктограмму элемента, щелкнуть мышью в нужном месте размещения управляющего элемента. Можно менять местоположение и размеры элементов и самой диалоговой панели, перетаскивая их мышью или растягивая за боковые маркеры. В строке состояния редактора диалоговых ресурсов отражаются размеры и координаты выделенных элементов.

    Данный метод редактирования диалоговых окон стал одной из причин появления в названии среды разработки слова "visual - визуальный". Он позволяет быстро настраивать внешний вид пользовательского интерфейса без каких-либо усилий по программированию размеров, относительного положения и т.д.

    Дополнительную поддержку визуального проектирования диалоговых панелей оказывает панель инструментов Dialog Editor, которую можно вызвать так, как рассмотрено в разделе "Панели инструментов". Сама панель имеет вид

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

    Чтобы создать новую заготовку ресурса диалогового окна, нужно выделить в панели Resource View любой узел ресурса и через контекстное меню вызвать окно добавления ресурса

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

    Аналогичный результат можно получить, если выделить любой узел ресурса в панели Resource View и через главное меню среды выполнить команду Project/Add Resource...

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

    Раздел Icon (пиктограммы, иконки)

    Пиктограммы - это небольшие растровые изображения, которые значками представляют программу или созданные с ее помощью документы. Стандартный размер пиктограммы 32х32 пиксела. Эта пиктограмма обычно находится на рабочем столе в качестве ярлыка или в окне About (О программе). Существует также вариант размером 16х16 пикселов, отображаемый вначале заголовка окна приложения и на панели задач ( Taskbar ). Уменьшенная пиктограмма представлена ресурсом IDI_SMALL. Идентификаторы ресурсов пиктограмм имеют префикс IDI_.

    Фактически ресурс иконок содержит не одну, а набор пиктограмм, заготовленных для применения в различных ситуациях и содержащихся в графическом файле с расширением *.ico. Чтобы их посмотреть, нужно открыть редактор ресурса пиктограмм и через появившийся дополнительный пункт главного меню Image или контекстное меню редактора выбрать пункт Current Icon Image Types.

    Для рисования пиктограмм среда предоставляет простой графический редактор наподобие Microsoft Paint или Microsoft Paintbrush.

    Раздел Menu (меню)

    С помощью команд меню пользователи управляют программой. Окно Resource View обеспечивает доступ к ресурсу меню через запуск редактора меню двойным щелчком на идентификаторе ресурса.

    Запускается редактор меню, в котором создается визуальная заготовка меню

    Работа редактора меню поддерживается через меню среды IDE или контекстное меню.

    Каждый пункт визуального представления меню имеет ряд характеристик, которые доступны через окно Properties. Каждый пункт имеет свой идентификатор ID_, который формируется редактором меню автоматически как цепочка названий пунктов, ведущих к данному элементу. Например, элементу New меню File назначается имя ID_FILE_NEW.

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

  • вначале присвоить элементам меню латиницу и после того, как на основании этого редактор меню автоматически сформирует корректные имена идентификаторов, изменить названия пунктов на русские
  • сформировать элементы меню с русскими названиями, затем скорректировать идентификаторы меню
  • Идентификаторы меню редактируются либо в редакторе меню, либо в инспекторе свойств (окно Properties ). При редактировании в редакторе меню нужно включить режим Edit IDs через контекстное меню редактора или IDE.

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

    Рассмотрим основные поля инспектора свойств для элементов меню:

  • ID (идентификатор ресурса) - уникальным образом идентифицирует элемент меню в приложении. Применяется для связывания с горячими клавишами и кнопками панели инструментов.
  • Caption (надпись пункта) - текст, который содержится в данном пункте меню. Для быстрого исполнения команды по клавише с определенным символом этот символ подчеркивается предваряющим амперсантом . К тексту может присоединяться название горячих клавиш. Например, New\tCtrl+N, где \t - управляющий символ табуляции, будет визуально представлено New Ctrl+N
  • Prompt (подсказки) - текст, который появляется в строке состояния, когда подсвечивается элемент меню (длинная подсказка), либо всплывающая подсказка, которая появляется при наведении курсора мыши на кнопку, соответствующую этому элементу меню на панели инструментов. Например, если в поле Prompt ввести строку Create a new document\nNew, то в строке состояния будет появляться длинная подсказка (до управляющего символа \n - новая строка), вторая часть строки будет всплывающей подсказкой при наведении курсора на кнопку панели инструментов с тем же идентификатором, что и элемент меню.
  • Раздел String Table (таблица строк)

    Таблица строк - это список всех текстовых строк приложения. Разумеется, для многих строк (например, статического текста диалоговых окон или подсказок для элементов меню) существуют и более простые способы доступа, нежели через таблицу строк, однако некоторые строки могут быть доступны только здесь. К примеру, в таблицу строк можно внести имя или значение как заготовку по умолчанию, которую затем можно изменить без перекомпилирования кода всего приложения, а только перекомпилировать код ресурсов и выполнить перекомпоновку (линковку) приложения.

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

    Таблица строк имеет поля редактирования ID (символическое имя идентификатора ресурса), Value (числовое значение идентификатора ресурса) и Caption (текстовое значение, закрепленное за идентификатором ресурса).

    Раздел Version (информация о версии)

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

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

    При редактировании этого ресурса применяется контекстное меню, но прежде, чем менять автоматически сгенерированную информацию, нужно хорошо знать ее назначение.

    Раздел Toolbar (панели инструментов)

    Панели инструментов, это группы маленьких кнопок, расположенные, как правило, прямо под строкой главного меню приложения. Каждая кнопка связана со своим пунктом меню, а ее внешний вид зависит от состояния этого пункта. Если соответствующий пункт меню Disabled - недоступен ( Enabled == FALSE ), то внешний вид и этого пункта и соответствующей кнопки будет затенен. Если элемент меню выбран, соответствующая кнопка обычно отображается в "нажатом" состоянии. Кнопки панелей инструментов являются индикаторами состояния пунктов меню, а также еще одним быстрым способом подачи команд приложению.

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

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

    Другие полезные окна

    Окно Object Browser (обозреватель объектов) - представляет информацию в более расширенном варианте, чем окно Class View.

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

    Окно Macro Explorer (обозреватель макросов) - позволяет запускать собственные макросы или макросы, поставляемые вместе с Visual Studio. Макросы пишутся на языке Visual Basic и используют объектную модель Visual Studio.

    Окно Task List (список задач) - "амбарная книга" поставленных и выполненных задач. Заполняется самой средой при возникновении ошибок или разработчиком проекта. Новые задания можно добавлять, отмечать как выполненные или удалять. Это своего рода записная книжка программиста - пользователя среды IDE.

    Окно Command Window (командное окно) - простой интерфейс командной строки для среды Visual Studio. Практически каждое действие по управлению оболочкой может быть выполнено из этого окна. Это окно сохраняет историю введенных команд, которую можно прокручивать стрелками. Как правило, окно Command Window применяется для быстрого выполнения команд, запрятанных глубоко в меню или доступных только посредством вызова многочисленных диалоговых окон.

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

    Окно Find Result 1 (результаты поиска 1) - отображает результаты поиска, выполненного с помощью команды Find in Files (найти в файлах).

    Окно Find Result 2 (результаты поиска 2) - еще одно окно, которое отображает результаты поиска, выполненного с помощью команды Find in Files (найти в файлах). Наличие второго окна позволяет сохранить в первом результаты предыдущего поиска.

    Окно Find Symbol Result (результаты поиска идентификаторов) - отображает результаты выполнения команды Find Symbol (найти идентификатор) и Quick Find Symbol (быстрый поиск идентификаторов). Двойной щелчок на найденном идентификаторе открывает в рабочей области файл, в котором используется этот идентификатор. Сам идентификатор при этом соответствующим образом выделяется.

    Окно Favorites (избранное) - открывает папку избранное обозревателя Internet Explorer. Это позволяет управлять содержимым папки Избранное и открывать Web -ресурсы, не покидая пределов Visual Studio.

    Любой из этих инструментов можно вызвать также через кнопки панели инструментов Standard или их раскрывающийся список.

    Окно представления Properties (инспектор свойств)

    Свойства определяют характеристики объектов, такие как место расположения, размер, стиль, цвет и т.д. Свойства разбиты на категории:

  • Accessibility (доступность)
  • Appearance (отображение) - определяет цвета, выравнивание, текстовые надписи, которые будут отображаться на объекте
  • Behavior (поведение) - определяет, как объект будет себя вести, когда пользователь щелкнет кнопкой мыши или нажмет клавишу
  • Configurations (конфигурация)
  • Data (данные) - связывает объект с информацией, сохраненной в базе данных
  • Design (проект) - определяет имя объекта, может ли он перемещаться и будет ли отображаться для других частей программы
  • Focus (фокус) - определяет действия объекта в момент выбора его пользователем
  • Layout (размещение) - определяет размер объекта и размещение его на экране
  • Верхняя часть окна Properties содержит панель инструментов,

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

  • Categorized (упорядочить по категориям)
  • Alphabetic (упорядочить по алфавиту)
  • Properties (отобразить свойства)
  • Events (отобразить связанные события)
  • Свойства объектов меняют двумя способами:

  • на стадии проектирования (разработки интерфейса)
  • во время выполнения программы
  • Управление размещением окон

    Управление размещением панелей

    Панели могут размещаться несколькими способами

  • Dockable - способность приклеивания к любой стороне рабочей области или встраивания в другую панель. Панель, находясь в этом состоянии, может быть визуально приклеена, либо отстыкована от соответствующей границы рабочей области. Изменение визуального расположения панели выполняется двойным щелчком мыши на ее заголовке.
  • Hide - закрытие панели (через этот пункт меню или через стандартную кнопку закрытия на заголовке панели)
  • Floating - свободное плавающее состояние панели
  • Auto Hide - панель, автоматически всплывающая при наведении на ее пиктограмму курсора мыши. Включить этот режим состояния панели при включенном состоянии Dockable можно также через кнопку ее заголовка, имеющую вид заколки.
  • Переключать режимы состояния панели можно через контекстное меню ее заголовка

    или через главное меню IDE

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

    Управление размещением окон

    Окна в рабочей области могут размещаться в двух режимах:

  • Tabbed documents - расположить в форме вкладок
  • MDI environment - расположить в форме многодокументного интерфейса
  • Режимы размещения основных окон устанавливаются командой Tools/Options... после перезапуска оболочки.

    В режиме расположения окон в форме многодокументного интерфейса в главном меню Window становятся доступными команды

  • Cascade
  • Tile Horizontally
  • Tile Vertically
  • В нижней части меню Window содержится список открытых окон редактирования, из которого можно активизировать то или иное открытое окно.

    Начальная страница и настройка профилей

    Программу IDE можно настроить так, чтобы при каждом новом ее запуске автоматически раскрывалась вкладка панели Start Page (через меню Tools/Options...).

    Эта панель начальной страницы удобна для настройки внешнего вида среды (профиля), быстрого открытия последних проектов, подкачки внешних сетевых ресурсов. Она представляет собой графический интерфейс, основанный на HTML -коде.

    Начальная страница изменяется в зависимости от ежемесячно проводимых Microsoft технологических доработок бета-версии. Панель начальной страницы Start Page, открытая на вкладке Projects, может выглядеть так

    Верхняя часть панели Start Page содержит вкладки для быстрого переключения между различным режимами ее работы.

    Вкладка Projects

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

    Вкладка My Profile (мой профиль)

    позволяет настроить внешнее представление среды IDE в соответствии с предпочтениями пользователя (пользователем считается разработчик проекта приложения). Вид вкладки такой

    Раздел Profile: содержит раскрывающийся список, в котором можно выбрать наиболее предпочтительный вариант настройки

    Раздел Keyboard Scheme: (раскладка клавиатуры)

    Раздел Window Laout: (параметры окон)

    Раздел Help Filter: (фильтр окон справки)

    Раздел Show Help: (отображать справку) содержит две опции: Internal Help (внутренняя справка) и External Help (внешняя справка). Выбор первой опции открывает справку непосредственно в IDE, второй - в отдельном окне.

    Раздел At Startup: (при запуске) позволяет выбрать, что именно открывается при запуске IDE

    Здесь можно выбрать следующее:

  • Show Start Page - открыть начальную страницу
  • Load last loaded Solution - открыть решение, редактируемое последним
  • Show Open Project dialog box - вывести диалоговое окно "Open Project" (Открыть проект)
  • Show New Project dialog box - вывести диалоговое окно "New Project" (Новый проект)
  • Show empty environment - открыть окно для создания пустого приложения
  • Система меню IDE

    Система меню позволяет эффективно управлять оболочкой IDE. Строка главного меню открытого документа (приложения) состоит из девяти пунктов:

  • File (файл) - для манипуляций с файлами, например, открытие, закрытие, печать
  • Edit (правка) - для копирования, вырезания, вставки, поиска и перемещения по тексту исходного кода
  • View (вид) - настраивает внешний вид рабочей области и управляет отображением рабочих панелей
  • Build (сборка) - для компиляции, компоновки и развертывании решения
  • Debug (отладка) - предназначено для отладки решения
  • Data (данные) - для дизайнера форм
  • Format (управление расположением визуальных компонентов) - для дизайнера форм
  • Tools (сервис) - обеспечивает настройку IDE и вызов отдельных служебных программ (утилит)
  • Window (окно) - предназначено для выбора активного окна или взаимного расположения окон рабочей области
  • Help (справка, помощь) - обеспечивает доступ к встроенной справочной системе ( MSDN )
  • Использование меню File

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

    Команда File/New (Создать новый)

    Позволяет создавать следующие объекты

  • Project ...(проект) - открывает диалоговое окно New Project. Это окно позволяет добавить к существующему решению проекты различных типов либо создать для проекта новое решение
  • File...(файл) - открывает диалоговое окно New File. Новые файлы создаются физически, но не добавляются при этом к проекту автоматически. Чтобы добавить существующий файл в проект, нужно выполнить команду Project/Add Existing Item...
  • Blank Solution...(новое решение) - открывает диалоговое окно New Project с выбранным шаблоном и переключателем, установленным в положение Close Solution (закрыть текущее решение)
  • Команда File/Open (Открыть существующий)

    Это меню позволяет открывать следующие объекты

  • Project... (проект) - открывает диалоговое окно Open Project. С его помощью можно открыть любое решение или проект Visual Studio. По умолчанию в списке Files of type выбран фильтр All Project Files, что позволяет открывать проекты и решения на основе любых шаблонов, включая и старые. Можно задать и более конкретный фильтр
  • Project From Web... (проект из Web ) - позволяет открыть проекты, находящиеся по указанному адресу URL
  • File... (файл) - вызывает стандартное окно открытия файла.
  • File From Web... (файл из Web ) - позволяет открыть файл, находящийся по указанному адресу URL
  • Convert... (конвертировать) - позволяет конвертировать проект с языка Java в Visual C#.NET или с Visual Basic 6.0 в Visual Basic .NET
  • Команда File/Close (Закрыть текущий)

    Закрывает файл, открытый в IDE. Та же команда имеется в контекстном меню вкладки текущего файла рабочей области.

    Команда File/Add New Item... (Добавить новый элемент)

    Аналогична команде File/New/File..., но автоматически добавляет созданный файл в текущий проект.

    Команда File/Add Existing Item... (Добавить существующий элемент)

    Аналогична команде File/Open/File..., однако автоматически добавляет открываемый файл в существующий проект.

    Команда File/Add Project (Добавить в текущее решение еще один проект)

    Добавляет проект.

    Команда File/Open Solution... (Открыть решение)

    Если было открыто решение, то оно закрывается с предупреждением о необходимости сохранения, если была модификация.

    Команда File/Close Solution (Закрыть решение)

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

    Команда File/Save (Сохранить текущий файл такой-то)

    Сохраняет текущий файл редактирования. Та же команда имеется в контекстном меню вкладки текущего файла рабочей области. Имеется кнопка на панели инструментов Standard.

    Команда File/Save As... (Сохранить текущий файл такой-то под другим именем)

    Открывает стандартное диалоговое окно Save File As.

    Команда File/Save All (Сохранить все измененные файлы)

    Сохраняет все открытые в среде и модифицированные файлы под теми же именами. Имеется кнопка на панели инструментов Standard. Все файлы также автоматически сохраняются перед началом каждого этапа компиляции.

    Команда File/Source Control (Контроль исходного кода)

    Типы проектов

    При выполнения пункта меню New/Project появляется окно мастера, которое имеет вид

    Тип проекта C#

    Для типа проекта C# можно создать следующие виды шаблонов

  • Windows Application - приложение Windows для локального компьютера
  • Class Library - создание библиотечного файла DLL
  • Windows Control Library - создание библиотечного элемента управления
  • Smart Device Application
  • ASP.NET Web Application - Web -приложение ASP.NET
  • ASP.NET Web Service - создание web -сервиса
  • ASP.NET Mobile Web Application
  • Web Control Library - создание элемента управления Web
  • Console Application - создание консольного приложения
  • Windows Service - создание службы Windows
  • Empty Project - создание пустого проекта
  • Empty Web Project - создание пустого Web -проекта
  • New Project In Existing Folder - добавление нового проекта в существующую папку
  • Вернуться к учебному плану