C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Урок 19. Свойство булевского типа / Библиотека ATL / Visual C++

Visual C++. ATL
Урок 19. Свойство булевского типа

Посмотрим, как можно добавить свойство булевского типа. Такое свойство будет, например, в Visual Basic'е быть типом Boolean и в окне Properties для нашего компоненты оно будет выглядеть как combobox с двумя значениями - True и False.

Основное для создания такого свойства - это использование типа VARIANT_BOOL.

Вот пример кода:

STDMETHODIMP CMyBool::get_myBool(VARIANT_BOOL *pVal)
{
    // TODO: Add your implementation code here
    *pVal = m_bSomeValue;
    return S_OK;
}

STDMETHODIMP CMyBool::put_myBool(VARIANT_BOOL newVal)
{
    // TODO: Add your implementation code here
    m_bSomeValue = newVal;
    return S_OK;
}

Добавляем мы наше свойство как всегда - через интерфейс (если забыли, см. урок 5).

Тут мы предполагаем, что где-то в классе нашего компонента объявлена переменная такого же типа:

    ...
    VARIANT_BOOL m_bSomeValue;
    ...

Также обратите внимание, что при добавлении нашего свойства в окне Add Property to Interface в combobox'у для типа не будет типа VARIANT_BOOL. Видимо, это недоработка программистов из Microsoft'а. Этот тип надо написать вручную.

Для нашего компонента добавленное свойство будет выглядеть как combobox с двумя значениями - True и False:

combobox со значениями True и False

Также обратите внимание, что для добавленного свойства в окне кода будет работать IntelliSence:

IntelliSence в окне кода

И последнее. С типом VARIANT_BOOL надо использовать две константы - VARIANT_TRUE и VARIANT_FALSE. Их назначение должно быть понятно.