Поделиться через


Создание элемента управления Windows Forms (C++)

Элементы управления Windows Forms представляют собой компоненты, которые могут добавляться в приложения Windows Forms (приложения с графическим интерфейсом пользователя, предназначенные для среды CLR). Приложения Windows Forms в Visual C++ используют классы .NET Framework и иные функциональные возможности .NET с новым синтаксисом Visual C++.

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

В этом пошаговом руководстве рассматриваются следующие действия:

  • создание нового проекта;

  • разработка элемента управления;

  • добавление пользовательского свойства в элемент управления;

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

  • размещение элемента управления в приложении;

  • запуск приложения.

Обязательные компоненты

Этот раздел предполагает знание основ языка C++. Если вы приступаете к изучению C++, рекомендуется ознакомиться с документом "Руководство по С++ для начинающих", написанным Гербом Шилдтом (Herb Schildt), которое доступно по ссылке https://go.microsoft.com/fwlink/?LinkId=115303.

ссылка на видео Для просмотра видеоверсии этой темы перейдите по ссылке Видео: создание элемента управления Windows Forms (C++).

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

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

Кроме того, элемент управления Windows Forms можно создать путем создания класса, производного от класса Control (отрисовка элемента управления должна быть реализована в коде) или от класса Component (элемент управления, не имеющий пользовательского интерфейса).

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

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

  2. В узле Visual C++ области Типы проектов выберите пункт CLR, а затем в области Установленные шаблоны Visual Studio выберите пункт Библиотека элементов управления Windows Forms.

    Введите имя проекта, например clickcounter.

    Введите имя решения, отличное от имени проекта, например controlandtestapp.

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

  3. Откроется конструктор Windows Forms с областью для добавления элементов управления, которые требуется разместить на поверхности разработки элемента управления.

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

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

Установка свойств пользовательского элемента управления

  1. Если окно Свойства не отображается, в меню Вид выберите Окно свойств.

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

    • для свойства Size установите значение 100, 100;

    • для свойства BorderStyle установите значение Fixed3D.

      Границы метки станут видно после размещения элемента управления в приложении.

  2. Если окно Панель элементов не отображается, в меню Вид выберите Панель элементов.

    Перетащите элемент управления Label из окна Панель элементов на поверхность разработки и расположите его в центре элемента управления.

    Задайте следующие свойства для метки:

    • для свойства BorderStyle установите значение FixedSingle;

    • для свойства Text установите значение 0 (ноль);

    • для свойства Autosize установите значение False;

    • для свойства Size установите значение 30, 20;

    • для свойства TextAlign установите значение MiddleCenter.

    Свойство Name (по которому на него производятся ссылки в коде) оставьте без изменений (label1). Элемент управления должен выглядеть примерно следующим образом:

    Структура элемента управления

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

  4. В области редактирования отобразится файл clickcounter.h с пустым методом обработчика событий.

    Примечание

    Если необходимо освободить место, закройте окна Панель элементов или Свойства, щелкнув соответствующий значок "Закрыть" или отсоединив окно, чтобы оно автоматически скрылось.

  5. Установите курсор после открывающей скобки метода label1_Click, нажмите клавишу ВВОД и введите следующий код:

    int temp = System::Int32::Parse(label1->Text);
    temp++;
    label1->Text = temp.ToString();
    

    После ввода оператора разрешения области действия (::), оператора точки (.) или оператора стрелки (->) IntelliSense выведет список возможных вариантов. Можно выделить элемент и нажать клавишу TAB или ВВОД или дважды щелкнуть элемент, чтобы вставить его в код.

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

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

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

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

  1. Установите курсор после двоеточия первого индикатора области действия public, public:, в начале файла clickcounterControl.h, нажмите клавишу ВВОД и введите следующий код:

    property bool ClickAnywhere {
        bool get() {
            return (label1->Dock == DockStyle::Fill);
        }
        void set(bool val) {
            if (val) 
                label1->Dock = DockStyle::Fill;
            else 
                label1->Dock = DockStyle::None;
        }
    }
    

    При присвоении свойству ClickAnywhere элемента управления значения true свойство Dock метки принимает значение DockStyle::Fill, и метка растягивается на всю область элемента управления. В этом случае при щелчке в любом месте элемента управления будет вызвано событие Click метки, и число на метке увеличится на 1.

    Если свойство ClickAnywhere имеет значение false (значение по умолчанию), свойство Dock метки принимает значение DockStyle::None. Метка не растягивается на всю область элемента управления, и чтобы произошло событие метки Click и число увеличилось, щелчок должен произойти в пределах границ метки.

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

    При отсутствии ошибок будет создан элемент управления Windows Forms, содержащийся в файле с именем clickcounter.dll. Этот файл можно найти в структуре каталогов проекта.

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

На этом этапе создается проект приложения Windows Forms, на форме которого будут размещены экземпляры элемента управления clickcounter.

Примечание

Для написания приложения Windows Forms, с помощью которого будет производиться тестирование элемента управления, можно использовать язык Visual C++ или любой другой язык .NET, например C# или Visual Basic.

Создание проекта приложения Windows Forms

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

Чтобы добавить проект в решение,можно также щелкнуть правой кнопкой мыши решениеcontrolandtestapp в обозревателе решений, навести курсор на пункт Добавить и выбратькоманду Создать проект....

  1. В узле Visual C++ области Типы проектов выберите CLR, а затем в области Установленные шаблоны Visual Studio выберите Приложение Windows Forms.

    Введите имя проекта, например testapp.

    В раскрывающемся списке Решение обязательно выберите Добавить к решению, вместо параметра по умолчанию Создать новое решение, и затем нажмите кнопку ОК.

  2. Откроется конструктор Windows Forms, отображающий форму Form1 созданного проекта, как показано ниже:

    Вновь созданная форма

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

  1. Добавьте ссылку на элемент управления. В обозревателе решений щелкните правой кнопкой мыши проект testapp и выберите пункт Ссылки.

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

  2. Если окно Панель элементов не отображается, в меню Вид выберите Панель элементов.

  3. Если найти элемент управления clickCounter в панели элементов со значком "шестеренки" не удается, щелкните правой кнопкой мыши Панель элементов и выберите команду Выбрать элементы.

    Нажмите кнопку Обзор и найдите файл clickcounter.dll в структуре каталогов решения. Выделите его и нажмите кнопку ОК.

    Элемент управления clickcounter отобразится в списке Компоненты .NET Framework с установленным флажком. Нажмите кнопку ОК.

    Элемент управления отобразится на Панели элементов со значком по умолчанию в виде шестеренки.

Размещение элемента управления в приложении

На данном этапе на форме приложения размещаются два экземпляра элемента управления и задаются их свойства.

Размещение экземпляров элемента управления на форме

  1. Перетащите два экземпляра элемента управления clickcounter из Панели элементов. Разместите их на форме так, чтобы они не перекрывали друг друга.

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

  2. Если окно Свойства не отображается, в меню Вид выберите Свойства.

    Свойство ClickAnywhere находится в разделе Разное Окна свойств (если свойства упорядочены по категориям).

  3. Выделите один из экземпляров элемента управления clickcounter, размещенных на форме, щелчком мыши, а затем установите для свойства ClickAnywhere значение true.

  4. Свойство ClickAnywhere второго экземпляра элемента управления clickcounter следует оставить равным false(по умолчанию).

  5. В обозревателе решений щелкните правой кнопкой мыши проект testapp и выберите Назначить запускаемым проектом.

  6. В меню Построение выберите команду Перестроить решение.

    Убедитесь, что построение обоих проектов было выполнено без ошибок.

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

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

Проверка работы приложения

  1. В меню Отладка выберите команду Начать отладку.

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

  2. Запустите приложение и попробуйте щелкнуть мышью каждый из элементов управления clickcounter.

    • Щелкните элемент управления, свойство ClickAnywhere которого имеет значение true.

      Число, отображаемое в метке,увеличивается при щелчке в любом месте элемента управления.

    • Щелкните элемент управления, свойство ClickAnywhere которого имеет значение false.

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

Тестовое приложение, демонстрирующее элементы управления

  1. Закройте приложение, щелкнув кнопку со значком "X" в правом верхнем углу окна "Form1".

Следующие действия

Назад: Создание приложения Windows Forms с помощью .NET Framework (C++) | Далее: Создание игрового приложения с использованием DirectX (C++)

См. также

Задачи

Интерактивный учебник по Visual C++

Ссылки

Windows API

System.Windows.Forms

Основные понятия

Знакомство с интегрированной средой разработки IDE Visual Studio (C++)

Другие ресурсы

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

Элементы управления Windows Forms