Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
161-192.doc
Скачиваний:
2
Добавлен:
11.11.2019
Размер:
358.91 Кб
Скачать

Функции класса cWnd для манипулирования элементами управления диалогового окна

Функция

Назначение

CheckDlgButton()

Выбирает или отменяет выбор флажка или переключателя

CheckRadioButton()

Выбирает указанный переключатель и отменяет выбор остальных переключателей в указанном наборе

DlgDirList()

Добавляет имена файлов, каталогов или дисков в список

DlgDirListComboBox()

Добавляет имена файлов, каталогов или дисков в поле со списком

DlgDirSelect()

Получает имя текущего, выбранного в списке, файла, каталога или диска

DlgDirSelectComboBox()

Получает имя текущего, выбранного в поле со списком, файла, каталога или диска

GetCheckedRadioButton()

Возвращает идентификатор выбранного переключателя в указанном наборе переключателей

GetDlgItem()

Возвращает указатель на временный объект для заданного элемента управления

GetDlgItemInt()

Возвращает числовое значение, представленное в текстовом виде в указанном элементе управления

GetDlgItemText()

Получает текст, отображаемый внутри элемента управления

Окончание табл. 6.4

Функция

Назначение

GetNextDlgGroupItem()

Возвращает указатель на временный объект для следующего (или предыдущего) элемента управления внутри группы

GetNextDlgTabItem()

Возвращает указатель на временный объект для следующего элемента управления (в порядке обхода), которому задано свойство Tabstop

IsDlgButtonChecked()

Возвращает статус отметки флажка или переключателя

SendDlgItemMessage()

Посылает сообщение элементу управления

SetDlgItemInt()

Преобразовывает целое число в текст и передает его элементу управления

SetDlgItemText()

Задает текст, отображаемый элементом управления

EnableWindow()

Разрешает или блокирует доступ к элементу

Вызов функции, инкапсулируемой в классе элемента управления диалогового окна, выполняется через объект класса элемента управления, связанный с элементом управления. Создать объект класса элемента управления можно такими способами.

Первый способ использует диалоговое окно Add Member Variable Wizard, в котором надо установить флажок Control variable, в списке Category выбрать значение Control. Мастер создаст соответствующий объект для элемента управления, например, объект класса CEdit для поля. При отображении диалогового окна MFC автоматически свяжет элемент управления с объектом класса так, чтобы можно было вызывать функции класса элемента управления для работы с ним. Функции можно вызывать только тогда, когда диалоговое окно отображено, иначе подобная связь не поддерживается.

Второй способ использует функцию CWnd::GetDlgItem() для объекта диалогового окна, чтобы получить указатель на временный объект элемента управления внутри диалогового окна. Например, вместо создания постоянного объекта класса элемента управления можно из функции CFormatDlg::OnInitDialog() инициализации диалогового окна вызвать функцию CWnd::GetDlgItem(), чтобы получить указатель на временный объект, для которого затем вызываются функции класса объекта управления. Прототип функции CWnd::GetDlg-Item() такой

CWnd* CWnd::GetDlgItem( int nID ) const;

Параметр nID определяет идентификатор элемента управления, указатель на который требуется получить. Так как функция CWnd::GetDlgItem() возвращает указатель класса CWnd, то его необходимо преобразовать в указатель на соответствующий класс элемента управления. Так как указатель временный, он используется только во время обработки текущего сообщения и в дальнейшем не сохраняется.

Приведем пример определения указателя на объект класса CEdit, который связан с элементом управления, имеющим идентификатор IDC_SPACING.

CEdit *p_Edit = (CEdit *)GetDlgItem (IDC_SPACING);

При работе с флажками и переключателями необходимо определять их состояние. Эти элементы управления могут быть выбраны (установлены) или не выбраны (сброшены). Функция CWnd::IsDlgButtonChecked() вызывается для того, чтобы убедиться, что переключатель выбран или флажок установлен. Параметр определяет идентификатор элемента управления. Прототип функции такой.

UINT CWnd::IsDlgButtonChecked( int nIDButton ) const;

Если в процессе работы с элементами управления необходимо сделать недоступным переключатель или запретить его отметку, то необходимо получить объект класса CButton и связать его с переключателем, имеющим заданный идентификатор. Чтобы выбрать переключатель или отменить его выбор, вызовите функцию CButton::SetCheck(), прототип которой показан ниже. Параметр функции задает состояние переключателя (1 — выбран, 0 — не выбран, 2 — неопределенное).

void CButton::SetCheck( int nCheck );

Для разрешения или блокирования доступа к переключателю используют функцию CWnd::EnableWindow() с аргументом, равным TRUE, если элемент доступен, и FALSE, если он заблокирован. Прототип функции приводится ниже.

BOOL CWnd::EnableWindow( BOOL bEnable = TRUE );

Объекты класса CEdit, которые связаны с текстовым полем диалогового окна, можно использовать для ограничения количества вводимых символов. Для этого вызывают функцию CEdit::LimitText(), предварительно определив указатель на элемент управления.

((CEdit *)GetDlgItem (IDC_SPACING))->LimitText (1);

Хотя элементы управления обычно связаны с диалоговыми окнами, их можно отображать внутри любого окна программы. Например, можно отобразить один или несколько элементов управления прямо внутри окна представления. В этом случае необходимо добавить код для явного создания, размещения и отображения элемента управления. Для этого объявите объект соответствующего MFC-класса элемента управления (можно сделать его членом класса главного окна). Вызовите функцию-член класса элемента управления Create(), чтобы отобразить его, задав требуемый размер, позицию и другие атрибуты. Обратите внимание: элемент управления является дочерним по отношению к окну, в котором он отображается. Если окно представления в основном содержит лишь набор элементов управления, лучше всего породить класс представления от класса CFormView и использовать шаблон диалогового окна вместо создания элементов управления по отдельности.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]