Алекс Jenter - Программирование на Visual C++. Архив рассылки

Здесь есть возможность читать онлайн «Алекс Jenter - Программирование на Visual C++. Архив рассылки» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Программирование на Visual C++. Архив рассылки: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Программирование на Visual C++. Архив рассылки»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

РАССЫЛКА ЯВЛЯЕТСЯ ЧАСТЬЮ
, НА САЙТЕ КОТОРОГО ВСЕГДА МОЖНО НАЙТИ ВСЮ НЕОБХОДИМУЮ РАЗРАБОТЧИКУ ИНФОРМАЦИЮ, СТАТЬИ, ФОРУМЫ, РЕСУРСЫ, ПОЛНЫЙ АРХИВ ПРЕДЫДУЩИХ ВЫПУСКОВ РАССЫЛКИ И МНОГОЕ ДРУГОЕ.

Программирование на Visual C++. Архив рассылки — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Программирование на Visual C++. Архив рассылки», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Прежде чем рассказывать про класс CWinDataExchange<>, скажу несколько слов об общих принципах реализации дополнительной функциональности в WTL.

Обычно дополнительные возможности WTL реализуются в отдельных классах. Чтобы получить доступ к этим возможностям, необходимо произвести свой класс от всех классов WTL, содержащих нужную нам функциональность. Далее каждый из базовых классов конфигурируется с помощью соответствующей карты (map), которая составляется из специально предусмотренных для этой цели макросов. Обычно карта начинается макросом BEGIN_XXX_MAPи заканчивается макросом END_XXX_MAP(XXX обозначает некоторый идентификатор, разъясняющий назначение карты). Между ними располагаются все остальные макросы карты.

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

Настроив нужные нам механизмы WTL, мы можем использовать их, вызывая или переопределяя предусмотренные для этой цели методы.

Вернёмся к механизму DDX. Чтобы использовать его, включите в список базовых классов вашего диалога (или другого окна, содержащего контролы) класс CWinDataExchange<>(описан в файле atlddx.h ). В качестве параметра шаблона задаётся имя вашего производного класса. Например:

class CMyDialog : public CDialogImpl, public CWinDataExchange{

};

Следующий шаг – включить в public-секцию вашего класса карту DDX. Каждая строчка в этой карте связывает идентификатор контрола с некоторой переменной в вашей программе. Обычно это переменная-член класса, но она может быть и глобальной/статической. В обмене могут участвовать числовые или текстовые данные с ограничениями или без них. Список макросов, из которых строится карта DDX, приведён в таблице 1.

Макрос Описание
BEGIN_DDX_MAP(thisClass) Начало карты DDX. thisClass– имя класса, в котором содержится карта.
DDX_TEXT(nID, var) Связывает строковую переменную varс контролом nID(здесь и далее nID– это идентификатор контрола). Переменная varможет иметь тип TCHAR*, BSTR, CComBSTRили CString. Обмен данными осуществляется при помощи функций SetWindowTextи GetWindowText. Чаще всего макрос используется для статических контролов и полей ввода, хотя может применяться и с другими окнами.
DDX_TEXT_LEN(nID, var, len) Аналогичен предыдущему, но длина строки ограничивается значением len. Попытка передать строку, длина которой превышает len, приведёт к ошибке валидации (об ошибках немного позже).
DDX_INT(nID, var) Связывает целочисленную переменную varс контролом nID.
DDX_INT_RANGE(nID, var, min, max) Аналогичен предыдущему, но передаваемое значение должно лежать в диапазоне от minдо max. Невыполнение этого условия приведёт к ошибке валидации.
DDX_UINT(nID, var) Связывает целочисленную беззнаковую переменную varс контролом nID.
DDX_UINT_RANGE(nID, var, min, max) Аналогичен предыдущему, но передаваемое значение должно лежать в диапазоне от minдо max. Невыполнение этого условия приведёт к ошибке валидации.
DDX_FLOAT(nID, var) Связывает переменную с плавающей точкой varс контролом nID. varможет иметь тип floatили double. Макрос DDX_FLOATбудет доступен, только если вы определите макрос _ATL_USE_DDX_FLOATперед включением заголовочного файла atlddx.h .
DDX_FLOAT_RANGE(nID, var, min, max) Аналогичен предыдущему, но передаваемое значение должно лежать в диапазоне от minдо max. Невыполнение этого условия приведёт к ошибке валидации.
DDX_CONTROL(nID, obj) Связывает объект objс контролом nID. Для связывания используется метод obj.SubclassWindow, поэтому объект должен принадлежать классу CWindowImplBaseT<>или производному от него.
DDX_CHECK(nID, var) Привязывает переменную varтипа intк флагу checked кнопки nID. Для обмена данными используются сообщения BBM_SETCHECKи BM_GETCHECK.
DDX_RADIO(nID, var) Связывает переменную varтипа intс группой переключателей. Контрол nIDдолжен быть первым в группе.
END_DDX_MAP() Этот макрос завершает карту DDX. Не имеет параметров.

Рассмотрим пример карты DDX для диалога, который позволяет вводить имя, адрес и номер телефона.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Программирование на Visual C++. Архив рассылки»

Представляем Вашему вниманию похожие книги на «Программирование на Visual C++. Архив рассылки» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Алексей Макеев - Смертельный архив
Алексей Макеев
libcat.ru: книга без обложки
Алексей Апухтин
Отзывы о книге «Программирование на Visual C++. Архив рассылки»

Обсуждение, отзывы о книге «Программирование на Visual C++. Архив рассылки» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x