
- •Л. Б. Бузюков, о. Б. Петрова
- •Учебное пособие
- •Предисловие
- •Глава 1. Введение в язык с
- •1.1. История создания и особенности языка с
- •1.3. Элементы языка с
- •1.3.1. Основные символы
- •1.3.2. Ключевые слова
- •1.3.3. Идентификаторы
- •1.3.4. Константы
- •1.3.5. Лексемы
- •1.3.6. Комментарии
- •Глава 2. Типы данных языка c
- •2.1. Числовые типы данных
- •2.2. Объявление переменных
- •2.3. Данные целого типа
- •2.4. Данные вещественного типа
- •Глава 3. Выражения
- •3.1. Операции
- •3.1.1. Арифметические операции
- •3.1.2. Операция присваивания
- •Глава 4. Составление простейших программ
- •4.1. Препроцессор и его функции
- •4.2. Основные директивы препроцессора
- •4.2.1. Директива include
- •4.2.2. Директива define
- •4.2.3. Директива undef
- •4.3. Структура и правила составления программ
- •4.3.1. Структура функции
- •4.3.2. Функция main()
- •4.3.3. Структура простой программы
- •4.3.4. Правила записи объявлений, операторов и комментариев
- •4.3.5. Пример простейшей программы
- •Глава 5. Средства ввода/вывода
- •5.1. Общие замечания
- •5.2. Функция форматированного вывода printf()
- •5.2.1. Основные форматы
- •5.2.2. Модификации форматов
- •5.3. Функция форматированного ввода scanf()
- •Глава 6. Управляющие операторы
- •6.1. Условные операторы
- •6.1.1. Логические выражения
- •6.1.2. Формы оператора if
- •6.1.3. Оператор выбора switch
- •6.2. Операторы цикла
- •6.2.1. Оператор while
- •6.2.2. Оператор for
- •6.2.3. Оператор do-while
- •6.3. Операторы перехода
- •6.3.1. Оператор break
- •6.3.2. Оператор continue
- •6.3.3. Оператор return
- •6.3.4. Применение оператора goto и меток
- •Глава 7. Функции
- •7.1. Основные понятия
- •7.2. Определение функции
- •7.3. Прототип функции
- •7.4. Вызов функции
- •Глава 8. Классы памяти
- •8.1. Логическаяструктура памяти программы
- •8.2. Особенности классов памяти
- •8.3. Объявления переменных
- •8.4. Объявления функций
- •8.5. Время жизни и область видимости программных объектов
- •8.6. Инициализация глобальных и локальных переменных
- •Глава 9. Указатели
- •9.1. Операция получения адреса
- •9.2. Операции над указателями
- •Глава 10. Массивы
- •10.1. Общие сведения о массивах
- •10.2. Одномерные массивы
- •10.3. Двумерные массивы
- •10.4. Массивы и указатели
- •10.5. Массивы и функции
- •Глава 11. Строки
- •11.1. Представление символьной строки при помощи одномерного массива
- •11.2. Указатель на символьную строку
- •11.3. Ввод/вывод символьных строк
- •11.4. Массивы символьных строк
- •11.5. Функции работы состроками
- •Глава 12. Структуры
- •12.1. Определение структуры
- •12.2. Структуры и функции
- •12.3. Указатели на структуру
- •12.4. Массивы структур
- •12.5. Вложенные структуры
- •12.6. Использование синонима типа
- •12.7. Объединения
- •Глава 13. Файлы
- •13.1. Работа с файлами
- •13.2. Функции ввода/вывода
- •Глава 14. Динамическая память
- •14.1. Распределение памяти
- •14.2. Функции управление памятью
- •Глава 15. Проект
- •15.1. Основы создания проекта
- •15.2. Пример создания проекта
- •Глава 17. Основы объектно-ориентированного программирования
- •17.1. Объектно-ориентированный подход
- •17.3. Конструкторы и деструкторы
- •17.4. Инкапсуляция
- •17.5. Полиморфизм
- •17.6. Наследование
- •17.7. Виды взаимодействия классов
- •17.8. Способы графического представления объектно-ориентированной задачи
- •18.2. Библиотека Win32 api
- •18.3. Библиотека owl
- •18.4. Библиотека vcl
- •18.5. Библиотека clx
- •18.6. Библиотека mfc
- •18.7. Библиотека OpenGl
- •19.3. Создание проекта
- •19.4. Редактирование проекта
- •19.5. Компиляция и выполнение программы
- •19.6. Файловая структура проекта
- •19.7. Создание консольного приложения
- •Глава 20. Разработка приложений для операционных систем windows
- •20.1. Взаимодействие программы и Windows
- •20.2. Компоненты библиотеки Win32 api
- •20.3.Функция WinMain()
- •20.4. Оконная процедура
- •20.5. Структура программы для ос Windows
- •20.6. Ресурсы Windows
- •20.7. Взаимодействие прикладной программы и устройств в Windows
- •Глава 21. Создание приложений для ос windows на основе библиотеки mfc
- •21.1. Обзор классов библиотеки mfc
- •21.2. Класс cString
- •21.3. Класс cFile
- •21.4. Класс cPoint
- •21.5. Класс cRect
- •21.7. Приложение, основанное на диалоге
- •21.8. Использование в приложении элементов управления
- •21.9. Мастер классов mfc ClassWizard
- •21.10. Установка начального значения элементам управления
- •21.11. Элементы управления Picture
- •21.12. Элемент управления Group Box
- •21.13. Элемент управления Radio Button
- •21.14. Элемент управления Check Box
- •21.15. Элемент управления List Box
- •21.16. Создание меню
- •21.17. Приложение с двумя диалоговыми панелями
- •21.18. Приложение sdi
- •21.19. Создание панели инструментов
- •21.20. Приложение mdi
- •21.21. Контекстыустройств в mfc
- •21.22. Графические объекты Windows в mfc
- •21.23. Графические операции в mfc
- •П.1. Основы методологии конструирования программ
- •П.1.1. Основные понятия. Программа и алгоритм
- •П.1.2. Этапы разработки программ
- •П.2. Алгоритмы
- •П.2.1. Алгоритм и его свойства
- •П.2.2. Способы описания алгоритмов
- •П.2.3. Средства графического изображения алгоритмов Схемы алгоритмов
- •Псевдокоды
- •Структурограммы
- •П.3. Основные приемы программирования
- •П.3.1. Разновидности структур программирования
- •П.3.2. Программирование линейных и разветвляющихся процессов
- •П.3.3. Программирование циклических процессов
- •Арифметический цикл (цикл с параметром)
- •Итерационный цикл
- •Вложенный цикл
- •Литература
21.8. Использование в приложении элементов управления
Элементы управления используются в приложении для создания графического интерфейса пользователя. К элементам управления относятся статические тексты, кнопки, радиокнопки, флажки, окна редактирования, списки, изображения, а также более сложные элементы управления, например, календарь. Перечень элементов управления постоянно пополняется новыми элементами.
Наиболее часто используемые элементы управления собраны в панели Controls в виде кнопок и добавляются в проект визуально с помощью мыши:
рисунок (Picture),
статический текст (Static Text),
окно редактирования (Edit Box),
группа (Group Box),
кнопка (Button),
флажок (Check Box),
радиокнопка (Radio Button),
комбинированный список (Combo Box),
окно со списком (List Box).
Сначала на панели Controls мышью выбирается элемент, затем щелчком левой кнопкой мыши выбранный элемент помещается в указанном месте в пределах панели диалога. Элементы, помещенные в диалоговую панель, могут быть выделены по одному или группой, выделенные элементы можно удалить с панели диалога или переместить в ее пределах.
Контекстное меню элемента управления содержит команду Properties (Свойства), с помощью которой можно настроить внешний вид элемента. Окно свойств имеет три вкладки: General – здесь собраны свойства, отвечающие за функционирование элемента; Styles – набор оригинальных свойств, характерных для данного элемента; Extended Styles – универсальный набор стандартных свойств.
Рассмотрим наиболее общие свойства элементов управления.
В разделе General для элементов определяются значения следующих свойств:
ID – идентификатор элемента управления, используется для обращения к элементу в программе, объявление идентификатора помещается в файл resource.h с помощью директивы define;
Caption – строка текста, определяющая надпись на элементе;
Visible – определяет, будет ли элемент отображаться на экране в начале работы программы, тип свойства – логический, по умолчанию имеет значение TRUE;
Disabled – определяет возможность использования элемента. Если свойство имеет значение TRUE, элемент отображается на экране, но не может быть активным; по умолчанию свойство имеет значение FALSE;
Group – определяет первый элемент в группе, имеет логический тип; при формировании группы это свойство может быть установлено только у одного элемента из группы (см. радиокнопки);
Tab Stop – определяет возможность обхода элемента при помощи клавиши Tab, тип логический; если свойство имеет значение TRUE, данный элемент может быть активизирован нажатием клавиши Tab, иначе при повторных нажатиях Tab элемент будет обходиться стороной.
Наборы свойств, собранных в разделе Styles, сильно отличаются для различных типов элементов, поэтому этот раздел будет рассмотрен позже для каждого типа элемента отдельно. В этот раздел обычно включаются свойства, определяющие выравнивание текста в элементе (alignment), размещение текста в нескольких строках (multiline).
В разделе Extended Styles находятся следующие свойства:
Client edge – устанавливает утопленную рамку вокруг элемента управления;
Static edge – устанавливает обычную рамку вокруг элемента управления;
Modal frame – устанавливает объемную рамку вокруг элемента управления;
Transparent – устанавливает прозрачность элемента.
По назначению элементы управления делятся на:
элементы, используемые для отображения (вывода) информации, например, статический текст;
элементы, используемые для сбора (ввода) информации, например, окно редактирования;
элементы, используемые для управления информацией, например, кнопки, флажки.
Все элементы управления представлены в программе объектами соответствующих классов. Так, для создания статической строки используется класс CStatic, окна редактирования – класс CEdit, кнопок – CButton. Все классы, представляющие собой элементы управления, являются потомками класса окна CWnd.
Элементы управления могут хранить некоторые значения. С такими элементами управления в программе связываются специальные переменные, которые представляют свой элемент управления в программе. Эти переменные имеют тот же тип, что и значения, присвоенные элементам управления. Например, окно редактирования хранит строку текста типа CString, в программе представителем этого элемента управления будет переменная того же типа. Связывание элементов управления и переменных в программе осуществляется с помощью мастера MFC ClassWizard, вкладка Member Variables, при этом могут быть созданы переменные двух категорий: значение (value) или элемент управления (control).
Разница между категориями переменных в том, что для категории переменной control происходит автоматическое обновление значения переменной, если изменилось значение в элементе управления, и, наоборот, если во время выполнения программы изменилось значение переменной, связанной с элементом управления, автоматически обновляется значение, хранимое элементом управления. Для категории переменных типа value обновление значений переменных и элементов управления производится с помощью функции UpdateData(). С другой стороны, такие элементы, как кнопки (button), не хранят никаких значений, используются лишь для вызова какой-либо функции и не имеют связанных переменных.