Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Янг Майкл Дж. -> "Visual С++ 6. Полное руководство: В 2 т.(том1)" -> 160

Visual С++ 6. Полное руководство: В 2 т.(том1) - Янг Майкл Дж.

Янг Майкл Дж. Visual С++ 6. Полное руководство: В 2 т.(том1) — Бином, 2006. — 569 c.
Скачать (прямая ссылка): vicualcc2006t1.djvu
Предыдущая << 1 .. 154 155 156 157 158 159 < 160 > 161 162 163 164 165 166 .. 204 >> Следующая

m_SpacingEdit.LimitText (1) ;
return TRUE;
// Возвращает значение TRUE, если фокус не // установлен на элементе управления. // ИСКЛЮЧЕНИЕ: страницы свойств OLE-злементов // возвращают значение FALSE
}
Функция OnlnitDialog получает управление при открытии диалогового окна Format непосредственно перед его отображением. Первый добавленный оператор сохраняет экранные координаты рамки Sample в переменной mRectSample.
Второй — преобразует координаты экрана в координаты окна (т. е. в координаты точек внутри диалогового окна относительно его левого верхнего угла). Переменная mRectSample отображает текст внутри рамки. Третий добавленный оператор использует переменную m_SpacingEdit класса CEdit для вызова функции LimitText класса CEdit. Передача в функцию LimitText значения I предотвращает ввод более чем одного символа в поле IDC SPACING.
MFC-классы для элементов управления
MFC предоставляет классы, позволяющие манипулировать элементами управления различных типов (табл. 15.3). Большинство этих классов порождаются от класса cwnd (некоторые — от других классов элементов управления). Функции-члены этих классов можно применять для получения информации или выполнения операций над элементом управления в диалоговом окне. Например, в программе FontDemo функция LimitText класса CEdit используется для ограничения количества вводимых символов. Так как каждый из классов управления порождается (прямо или косвенно) от класса CWnd, то в число вызываемых функций-членов входят также функции, определенные в классе CWnd. Некоторые из них полезны при работе с элементами управления (например, чтобы сделать элемент управления доступным или недоступным, можно вызвать функцию CWnd: :EnableWindow).
Полный список функций-членов отдельных классов элементов управления или класса CWnd приведен в следующих разделах справочной системы: Visual С++ Documentation, Reference, Microsoft Foundation Class Library and Templates, Microsoft Foundation Class Library, Class Library Reference.
Чтобы использовать одну из этих функций при работе с элементами управления в диалоговом окне, необходимо создать объект класса элемента управления, закрепляемый за элементом управления.
Вот два простых способа сделать это. Во-первых, можно использовать окно мастера ClassWizard, чтобы создать объект, подобный переменной m_SpacingEdit в программе FontDemo. В диалоговом окне Add Member Variable, отображаемом мастером ClassWizard, выберите пункт Control в списке Category. Мастер ClassWizard создаст соответствующий объект для элемента управления (например, объект класса CEdit для поля). При отображении диалогового окна MFC автоматически свяжет элемент управления с объектом класса так, чтобы можно было вызывать функции класса элемента управления для работы с ним. Функции можно вызывать только тогда, когда диалоговое окно отображено, иначе подобная связь не поддерживается.
Во-вторых, можно вызвать функцию CWnd: :GetDlgItem для объекта диалогового окна, чтобы получить указатель на временный объект для элемента управления внутри диалогового окна. Например, в программе FontDemo вместо создания постоянного объекта для поля можно из обработчика OninitDialog вызвать функцию GetDlgitem, чтобы получить временный объект, для которого затем вызывается
функция LimitText.
((CEdit *)GetDlgItem (IDC_SPACING))->LimitText (1);
Обратите внимание: так как функция GetDlgitem возвращает указатель класса CWnd, возвращаемое значение необходимо преобразовать в указатель на соответствующий класс элемента управления. Так как указатель временный, он используется только во время обработки текущего сообщения и в дальнейшем не сохраняется. Заметьте: функция GetDlgitem также использовалась для установки значения
объекта m_RectSample во фрагменте, добавленном в обработчик OnlnitDialog в этом параграфе.
Применяя этот способ, вы, возможно, захотите изменить диалоговое окно Format в программе FontDemo так, чтобы переключатель Bold (который имеет идентификатор idcjbold) был не отмечен и недоступен, когда переключатель Variable (idc_variable) выбран. (Вспомните: шрифт System с переменной высотой не может быть полужирным.) Этот код необходимо поместить в функции-члены OnlnitDialog, OnVariable И OnFixed класса диалогового окна CFormat. Для получения объекта CButton, связанного с переключателем Bold, можно использовать любой описанный выше метод. Чтобы выбрать переключатель или отменить его выбор, вызовите функцию CButton: rsetcheck, а для разрешения или блокирования доступа к переключателю — функцию CWnd: :EnableWindow.
Обратите внимание: хотя элементы управления обычно связаны с диалоговыми окнами, их можно отображать внутри любого окна программы. Например, можно отобразить один или несколько элементов управления прямо внутри окна представления. Однако диалоговое окно не имеет шаблона для создания и отображения элементов управления. Необходимо добавить код для явного создания, размещения и отображения элемента управления. Для этого объявите объект соответствующего MFC-класса элемента управления (можно сделать его членом класса главного окна). Вызовите функцию-член класса элемента управления Create, чтобы отобразить его, задав требуемый размер, позицию и другие атрибуты. Обратите внимание: элемент управления является дочерним по отношению к окну, в котором он отображается. Если окно представления в основном содержит лишь набор элементов управления, лучше всего породить класс представления от класса CFormView и использовать шаблон диалогового окна вместо создания элементов управления по отдельности (гл. 16).
Предыдущая << 1 .. 154 155 156 157 158 159 < 160 > 161 162 163 164 165 166 .. 204 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100