Опубликован: 17.08.2010 | Доступ: свободный | Студентов: 1000 / 59 | Оценка: 4.11 / 3.89 | Длительность: 29:38:00
Самостоятельная работа 3:

Использование элементов управления MFC

Аннотация: Компоненты управляющих элементов. Соглашения о префиксах. Изучаемые элементы управления: Static Text, Edit Control, Button, Check Box, Radio Button, Combo Box. Создание заготовки диалогового приложения и визуальная разработка интерфейса. Определение последовательности перехода по клавиши табуляции. Установка и проверка мнемоники. Связывание переменных и элементов управления. Инициализация элементов управления. Закрытие приложения. Отображение пользовательского сообщения. Очистка поля ввода пользовательского сообщения. Восстановление сообщения. Управление доступностью и видимостью инструментов приложения. Управление раскрывающимся списком. Запуск внешних приложений.
Файлы к данной лабораторной работе, Вы можете скачать здесь.

Оболочка содержит большинство управляющих элементов управления в готовом виде. Визуальный способ проектирования диалоговых панелей обеспечивает удобство и скорость для разработчика. Компоненты управляющих элементов содержатся в виде пиктограмм на панели Toolbox, вызываемой через главное меню оболочки View. Панель имеет три вкладки, нас интересует вкладка Dialog Editor. Если пиктограммы компонентов не помещаются в панели, то вверху и внизу по правой стороне существуют кнопки прокрутки.

Перенести компоненты управляющих элементов можно тремя способами:

  1. Двойной щелчок на пиктограмме компонента.
  2. Перетаскивание мышью.
  3. Выделение компонента на пиктограмме, затем выделение его места размещения на форме диалогового окна щелчком.
  4. Выделение компонента на пиктограмме, затем растягивание контура компонента на форме.

Каждому элементу управления, представленному на визуальной панели компонентов, соответствует класс библиотеки MFC. Любой из этих классов является потомком базового класса CWnd, поэтому представляет собой окно Windows.

Ресурс каждого элемента управления должен иметь внутри формы диалогового окна уникальный идентификатор. Его можно назначать самому через панель свойств Properties, задавая в поле ID элемента мнемоническое значение или вибирая из раскрывающегося списка того же поля заготовленные имена. В любом случае рекомендуется соблюдать соглашения о префиксах: идентификаторы диалоговых окон имеют префикс IDD_, а идентификаторы элементов управления - префикс IDC_ .

Цель работы

  1. Изучить основные элементы управления диалоговых приложений.
  2. Научиться объявлять переменные для компонентов и связывать их с самими компонентами.
  3. Научиться синхронизировать значения между самими элементами управления и представляющими их в программе переменными.
  4. Научиться задавать порядок получения фокуса ввода между элементами управления.
  5. Научиться инициировать действия с помощью элементов управления.
  6. Научиться задавать внешний вид элементов управления и изменять его во время выполнения приложения.

Изучаемые элементы управления

Рассмотрим некоторый элементы управления, а именно:

  1. Static Text - статический текст
  2. Edit Control - поле редактирования
  3. Button - кнопка
  4. Check Box - флажок
  5. Radio Button - радиокнопка
  6. Combo Box - поле ввода со списком

Static Text - статический текст

Этот элемент служит для отображения текста и не обеспечивает интерактивность (взаимодействие с пользователем), поэтому список событий у него пустой. Но можно заменять текст в процессе выполнения приложения, воздействуя на его свойство Caption.

Основные свойства элемента управления Static Text
Свойство Описание
ID Идентифицирует элемент управления. Значение по умолчанию всегда IDC_STATIC
Caption Определяет текст в элементе управления
Visible Включает - выключает видимость элемента во время выполнения ( true - видимый, false - невидимый).
Disabled Управляет представлением элемента как заблокированного или нет ( false - незаблокированный, true - заблокированный). Надпись заблокированного элемента отображается серым текстом
Tabstop Определяет, участвует ли элемент управления в процессе переноса фокуса ввода с помощью клавиши Tab
Client Edge Включает рамку элемента управления
Align Text Задает выравнивание текста внутри окна элемента
Border Показывает рамку вокруг элемента
Transparent Включает прозрачный фон окна компонента
CStatic - класс поддержки в MFC
Edit Control - поле редактирования

Этот элемент управления позволяет получить от пользователя текстовую информацию. Окно воспринимает только простой текст с минимальными возможностями редактирования.

Основные свойства элемента управления Edit Control
Свойство Описание
ID Идентифицирует элемент управления
Visible Включает - выключает видимость элемента во время выполнения ( true - видимый, false - невидимый).
Disabled Управляет представлением элемента как заблокированного или нет ( false - незаблокированный, true - заблокированный). Надпись заблокированного элемента отображается серым текстом.
Tabstop Определяет, участвует ли элемент управления в процессе переноса фокуса ввода с помощью клавиши Tab.
Client Edge Включает рамку элемента управления
Align Text Задает выравнивание текста внутри окна элемента
Border Показывает рамку вокруг элемента
Transparent Включает прозрачный фон окна компонента
Number Задает фильтр ввода "только для чисел"
Password Эхо ввода заменяет символом *
Multiline Включает возможность ввода нескольких строк
Modal Frame Включает выпуклое обрамление рамки окна компонента
OEM Convert Включает автоматическую конвертацию кодировки CharToOem
Uppercase Включает автоматическое преобразование в заглавные буквы (работает совместно с Lowercase как радиокнопка)
Lowercase Включает автоматическое преобразование в строчные буквы (работает совместно с Uppercase как радиокнопка)
Read Only Только для чтения - блокирует ввод
CEdit - класс поддержки в MFC
Button - кнопка
Основные свойства элемента управления Button
Свойство Описание
ID Идентифицирует элемент управления
Caption Определяет текст в элементе управления.
Visible Включает - выключает видимость элемента во время выполнения ( true - видимый, false - невидимый).
Disabled Управляет представлением элемента как заблокированного или нет ( false - незаблокированный, true - заблокированный). Надпись заблокированного элемента отображается серым текстом.
Tabstop Определяет, участвует ли элемент управления в процессе переноса фокуса ввода с помощью клавиши Tab.
Client Edge Включает рамку элемента управления.
Horizontal Alignment Задает выравнивание текста внутри окна элемента по горизонтали.
Vertical Alignment Задает выравнивание текста внутри окна элемента по вертикали
Transparent Включает прозрачный фон окна компонента
Multiline Включает возможность ввода нескольких строк
Modal Frame Включает выпуклое обрамление рамки окна компонента
Static Edge Включает рамку элемента управления без выпуклого представления
Default Button Задает фокус ввода при первом запуске приложения. Отмечает, что эта кнопка будет выполнена при нажатии клавиши Enter.
CButton - класс поддержки в MFC
Check Box - флажок

Дает возможность пользователю включить или выключить некую возможность (опцию). Возможны флажки с промежуточным - третьим - состоянием.

Основные свойства элемента управления Check Box
Свойство Описание
ID Идентифицирует элемент управления
Caption Определяет поясняющий текст на элементе управления
Visible Включает - выключает видимость элемента во время выполнения ( true - видимый, false - невидимый).
Disabled Управляет представлением элемента как заблокированного или нет ( false - незаблокированный, true - заблокированный). Изображение заблокированного элемента отображается серым
Tabstop Определяет, участвует ли элемент управления в процессе переноса фокуса ввода с помощью клавиши Tab.
Client Edge Включает рамку элемента управления
Horizontal Alignment Задает выравнивание текста внутри окна элемента по горизонтали.
Vertical Alignment Задает выравнивание текста внутри окна элемента по вертикали
Tri-state Включает третье состояние disabled (заблокирован). В этом состоянии значение элемента не рассматривается ни как true, ни как false.
Transparent Включает прозрачный фон окна компонента
Multiline Включает возможность ввода нескольких строк
Modal Frame Включает выпуклое обрамление рамки окна компонента
Static Edge Включает рамку элемента управления без выпуклого представления
Left Text Располагает надписи слева от флажка. При значении false надписи располагаются справа от флажка
Radio Button - радиокнопка

Этот элемент используется в группе, состоящей из двух и более переключателей. Пользователь может выбрать состояние, закрепленное только за одним переключателем группы.

Основные свойства элемента управления Radio Button
Свойство Описание
ID Идентифицирует элемент управления.
Caption Определяет поясняющий текст на элементе управления.
Visible Включает - выключает видимость элемента во время выполнения ( true - видимый, false - невидимый).
Disabled Управляет представлением элемента как заблокированного или нет ( false - незаблокированный, true - заблокированный). Изображение заблокированного элемента отображается серым.
Tabstop Определяет, участвует ли элемент управления в процессе переноса фокуса ввода с помощью клавиши Tab.
Client Edge Включает рамку элемента управления
Horizontal Alignment Задает выравнивание текста внутри окна элемента по горизонтали
Vertical Alignment Задает выравнивание текста внутри окна элемента по вертикали
Transparent Включает прозрачный фон окна компонента
Multiline Включает возможность ввода нескольких строк
Modal Frame Включает выпуклое обрамление рамки окна компонента
Static Edge Включает рамку элемента управления без выпуклого представления
Group Определяет первый из элементов управления в группе. Только у первого элемента в группе это свойство должно иметь значение true
Auto По умолчанию задано значение true, что позволяет переключателю автоматически изменять свое состояние при его выборе пользователем
Left Text Располагает надписи слева от переключателя. При значении false надписи располагаются справа от переключателя.
Combo Box - поле ввода со списком

Предоставляет раскрывающийся список выбора.

Основные свойства элемента управления Combo Box
Свойство Описание
ID Идентифицирует элемент управления
Visible Включает - выключает видимость элемента во время выполнения ( true - видимый, false - невидимый).
Disabled Управляет представлением элемента как заблокированного или нет ( false - незаблокированный, true - заблокированный). Изображение заблокированного элемента отображается серым.
Tabstop Определяет, участвует ли элемент управления в процессе переноса фокуса ввода с помощью клавиши Tab.
Client Edge Включает рамку элемента управления.
Modal Frame Включает выпуклое обрамление рамки окна компонента
Static Edge Включает рамку элемента управления без выпуклого представления
Group Определяет первый из элементов управления в группе. Только у первого элемента в группе это свойство должно иметь значение true
Auto По умолчанию задано значение true, что позволяет переключателю автоматически изменять свое состояние при его выборе пользователем
Sort Определяет, будут ли отсортированы элементы в раскрывающемся списке
Type Задает тип списка: " Dropdown - раскрывающийся при получении фокуса ввода " Simple - раскрыт все время Drop List - раскрывающийся с изображением текущего элемента списка.
CComboBox - класс поддержки в MFC

Класс CComboBox является производным от класса CWnd, но в свою очередь служит базовым классом для класса CComboBoxEx, который предоставляет функции для включения изображений в выбираемые элементы раскрывающегося списка.

Класс CComboBox предоставляет функции для программного взаимодействия со списком:

  • GetCurSel() - определяет номер текущего пункта списка
  • SetCurSel() - устанавливает текущим элемент с заданным номером
  • SelectString() - выделяет строку
  • FindString() - ищет строку
  • AddString() - добавляет строку в конец списка
  • InsertString() - вставляет строку перед текущей
  • DeleteString() - удаляет текущую строку
  • ResetString() - устанавливает список в исходное состояние
Александр Даниленко
Александр Даниленко
Стоит Windows 8 Pro, Visual Studio 2010 Express Edition .