Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Уроки по Visual C++ (MFC, платформа .NET)


Информационный Канал Subscribe.Ru

Visual C++.NET. Библиотека ATL. Уроки по программированию с сайта http://progs.biz

Рассылка №52

Visual C++.NET. Библиотека ATL. Урок 7. Перечисляемые свойства.

Полные версии уроков (с картинками) можно найти по адресам
Урок 7. Перечисляемые свойства.

Visual C++.NET. Библиотека ATL. Урок 7. Перечисляемые свойства

Сейчас мы с вами посмотрим, как можно добавлять в компонент перечисляемые свойства. В средах программирования, поддерживающих окна свойств (например, в VB или в Delphi) такие свойства будет видны в виде ниспадающего списка.

Для того, чтобы определить такое свойство мы должны, во-первых, задать новый тип данных с помощью enum. Делаем мы это в файле MyFirstATLh. нашего проекта, сразу после include'ов (для открытия этого файла можно сделать двойной щелчок на интерфейсе IMyFirstATL на вкладке Class View):

// MyFirstATL.h : Declaration of the CMyFirstATL
#pragma once
#include "resource.h"       // main symbols
#include 
[
    export, library_block,
    uuid("DCB60A0A-919F-4864-AEC6-FED1519F53A6")
]
enum MyColors
{
    Red=0,
    Yellow=1,
    Blue=2
};

Тут мы задали перечисляемы тип MyColors, который может принимать три значения - Red, Yellow и Blue. Не забудьте добавить строки

[
    export, library_block,
    uuid("DCB60A0A-919F-4864-AEC6-FED1519F53A6")
]
 ...

GUID (у нас это DCB60A0A-919F-4864-AEC6-FED1519F53A6) у вас будет свой. Можно взять его любой, важно, чтобы он был уникален.

Обратите внимание, что наше перечисление MyColors появится на вкладке Class View.

Теперь добавляем свойство в интерфейс IMyFirstATL. Для этого щелкаем на нем правой кнопкой мыши и выбираем Add->Add Property. В окне "Add Property Wizard - MyATL" задаем тип свойства как enum MyColors, имя - как SomeColor.

Нажимаем на Finish для закрытия окна.

Теперь добавим в класс CMyFirstATL переменную для хранения свойства перечисляемого типа. Для этого желкаем на классе (на вкладке Class View правой кнопкой мыши и выбираем из контекстного меню Add->Add Variable), после чего в окне "Add Member Variable Wizard - MyATL" задаем тип доступа как public, имя переменной - как m_Color и тип - как short.

Нажимаем на Finish для закрытия окна.

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

STDMETHODIMP CMyFirstATL::get_SomeColor(enum MyColors* pVal)
{
    // TODO: Add your implementation code here
    *pVal=(enum MyColors)m_Color;
    return S_OK;
}

STDMETHODIMP CMyFirstATL::put_SomeColor(enum MyColors newVal)
{
    // TODO: Add your implementation code here
    m_Color=(short)newVal;
    return S_OK;
}

Все, можно компилировать (Ctrl+Shift+B) и смотреть, как будет выглядеть новое свойство SomeColor в тестовом проекте на VB.NET. А выглядеть оно будет, как и положено - ниспадающим списком (как на первом рисунке нашего урока). Также все три возможные значения будут появлятся и в подсказках при наборе кода.

Наверх
Рассылки сайта progs.biz:
Рассылки Subscribe.Ru
Уроки по SQL Server

Уроки для начинающих по SQL Server. Создание баз данных, администрирование, программирование, использование языка T-SQL, написание клиентских приложений.


Copyright Алексеев Игорь, 2002

Copyright cайт progs.biz, 2002



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное