
- •6. Использование указателя this. Встраиваемые (inline-) функции. Статические члены класса.
- •8. Перегрузка функций (методов класса). Почему следует использовать перегрузку. Перегрузка функций. Перегрузка конструкторов.
- •10.Перегрузка операций (операторов). Понятие перегрузки операторов. Синтаксис перегрузки операции. Перегрузка бинарных операторов.
- •11. Перегрузка операций (операторов). Перегрузка операторов отношения и логических операторов. Перегрузка оператора присваивания. Перегрузка унарных операторов.
- •12. Перегрузка операций (операторов). Перегрузка операторов инкремента и декремента. Перегрузка оператора индексирования. Перегрузка оператора вызова функции.
- •13.Перегрузка операций (операторов). Перегрузка операторов доступа к членам класса. Перегрузка операторов new и delete. Функции преобразования типа.
- •14. Наследование. Производные классы. Синтаксис производного класса. Простое наследование. Множественное наследование. Виртуальные базовые классы. Создание производных классов.
- •15. Полиморфизм и виртуальные функции. Раннее и позднее связывание. Динамический полиморфизм. Виртуальные функции. Виртуальные и невиртуальные функции.
- •16. Полиморфизм и виртуальные функции. Применение динамического полиморфизма. Виртуальные деструкторы. Абстрактные классы и чисто виртуальные функции.
- •Void *memset(void *dest, int cchar, size_t count);
- •25. Стандартный класс string. Конструкторы строк. Изменение величины строки и ее емкости. Присваивание, добавление и обмен строк. Доступ к символам строки.
- •26. Стандартный класс string. Копирование строк и подстроки. Сравнение строк. Операции поиска.
- •27. Стандартный класс string. Вставка символов в строку. Замена и удаление символов из строки. Операции ввода-вывода строк.
- •Int main ()
- •28. Шаблоны. Шаблоны функций. Перегрузка шаблонов функций. Специализация шаблонов функций. Шаблоны функций сортировки.
- •29. Шаблоны классов. Конкретизация шаблона класса. Специализация шаблонов классов. Статические члены шаблонного класса.
- •30.Ключевое слово typename. Недостатки шаблонов.
- •Символьные функции (ctype.H)
- •Проверка, является ли символ цифрой, буквой или символом ascii
- •Проверка на управляющий символ, разделительный символ (пробел, табуляция, перевод строки) и знак препинания
- •Преобразования в код ascii, к верхнему и нижнему регистрам
- •41. Строковые функции (string.H). Работа с функциями манипуляции памятью. Нахождение символа в строке. Сравнение символов в строках. Заполнение буфера при помощи memset().
- •Работа с функциями манипуляции памятью
- •Нахождение символа в строке
- •Сравнение символов в строках
- •Заполнение буфера при помощи memset()
- •Сравнение содержимого двух строк
- •Приведение символов к верхнему регистру
- •43. Математические функции (math.H). Построение таблицы значений тригонометрических функций.
- •Построение таблицы значений тригонометрических функций
- •Структуры для представления даты/времени и параметры функций
- •Работа с функциями localtime() и asctlme()
- •Работа с функциями gmtime() и asctime()
- •Работа с функцией ctime()
- •45. Общие принципы и средства программирования для Windows. Язык Windows. Краткий обзор среды Windows. Преимущества использования Windows.
- •46. Общие принципы и средства программирования для Windows. Графический интерфейс пользователя. Многозадачная среда. Преимущества ввода посредством очереди.
- •48. Программирование для Windows: принципы и понятия. Окно Windows. Элементы интерфейса Windows.
- •49. Программирование для Windows: принципы и понятия. Рамка окна. Заголовок окна. Кнопка оконного меню. Оконное меню. Кнопка свертывания окна. Кнопка развертывания окна.
- •50.Программирование для Windows: принципы и понятия. Вертикальная полоса прокрутки. Горизонтальная полоса прокрутки. Панель меню. Рабочая область окна.
- •52. Программирование для Windows: принципы и понятия. Окна сообщений Windows. Окна диалога Windows. Шрифты Windows. Растровые изображения Windows. Перья Windows. Кисти Windows.
- •61.Новое поколение Windows. Передача информации с помощью сообщений. Независимость от драйверов аппаратуры. Plug-and-play. Библиотеки динамической компоновки. 16 бит против 32 бит.
- •62. Новое поколение Windows. Различные аппаратные платформы. Различные программные платформы. Многопроцессорные системы. Гибкость.
- •63.Новое поколение Windows. Распределенные вычисления. Сертифицированная правительством система обеспечения безопасности. Открытая архитектура систем Windows. Сбои системы. Виртуальная память.
- •64.Требования к программному и аппаратному обеспечению Windows приложений. Требования к программному обеспечению. Требования к аппаратуре.
- •65. Понятия и терминология Windows. Окно Windows. Визуальные компоненты интерфейса. Рамка. Заголовок окна. Кнопка управления или кнопка завершения.
- •66. Понятия и терминология Windows. Системное меню. Кнопка минимизации. Кнопка максимизации. Кнопка завершения.
- •67. Понятия и терминология Windows. Вертикальная полоса прокрутки. Горизонтальная полоса прокрутки. Полоса меню. Клиентская область.
- •68. Классы окон. Объектно-ориентированное программирование. Пиктограммы. Курсоры. Текстовые курсоры. Окна сообщений.
- •71. Ресурсы Windows. Функции Windows. Windows.H и связанные файлы заголовков. Нотация и правила подготовки программ Windows.
- •73. Доступ к оболочке Windows. Система координат. Основные режимы отображения. Координаты устройства.
- •77. Виртуальные клавиши. Системные таймеры. Срабатывание таймера. Эффективное использование механизма таймеров.
- •78. Память. Распределение памяти с помощью операционной системы. Уменьшение количества объектов. Уменьшение размера объекта. Использование перемещаемых объектов.
- •79. Простое приложение Windows. Оболочка для всех приложений. Эффективное использование описателей. Компоненты приложения Windows. Функция WinMain(). Регистрация класса окна.
- •80. Простое приложение Windows. Style. LpfnWndProc. CbClsExtra. CbWndExtra. Hinstance. HIсоn. HCursor. HbrBackground. IpszMenuName. IpszClassName.
- •81. Простое приложение Windows. Создание окна. Отображение и перерисовка окна. Цикл обработки сообщений. Функция GetMessage(). Функция TranslateMessage(). Функция DispatchMessage().
- •82. Простое приложение Windows. Функция окна. Сообщение wm_paint. Сообщение wm_destroy. Функция DefWindowProc(). Написание файла определения модуля.
- •83. Простое приложение и шаблон. Рисование эллипса. Рисование сегмента. Рисование сектора. Рисование прямоугольника.
- •84. Шаблоны приложения. Использование шаблона для создания программы, изображающей синусоиду. Файлы заголовков Windows. Файлы ресурсов. Создание программы для вывода круговых диаграмм.
- •85. Управление окном Windows. Понимание полос прокрутки. Терминология полос прокрутки. Константы полос прокрутки. Диапазон полосы прокрутки. Положение полосы прокрутки. Типы полос прокрутки.
- •96 Работа с ресурсами шрифта. Терминология шрифтов Windows. Константы шрифта. Структура textmetric. Структура logfonta. Ячейка символа шрифта.
- •97 Основные характеристики шрифта. Ширина шрифта. Автоматические кернинг и установка межстрочного интервала. Множества символов oem и ansi.
- •98 Основные характеристики шрифта. Логические и физические шрифты. Векторные, растровые шрифты и шрифты TrueType. Схема отображения шрифтов.
- •99 Выбор семейств шрифтов. Стандартные шрифты. Принтерные шрифты.
- •100 Приложения, управляющие шрифтами. Функция CreateFont(). Функция CreateFontlndirect().
- •102. Средства и методы gdi. Перья. Кисти. Изменение цветов фона. Изменение цветов текста.
- •104 Работа с битовыми образами. Функции BitBlt() и PlgBlt(). Загрузка и вывод на экран битовых образов. Обработка битовых образов при помощи функции Windows nt MaskBlt().
- •105. Вращение графических образов. Вращение прямоугольника.
- •108. Разработка приложений Win32. Важные изменения для переносимости программ в Windows 95 или Windows nt. Типы и структуры данных для Win32. Описатели в Win32.
- •Важные изменения для переносимости программ в Windows 95 или Windows nt.
- •Описатели в Win32.
- •109 Разработка приложений Win32. Менеджер палитр. Использование логической палитры.
- •110 Разработка приложений Win32. Шаблон приложения win32swp. Особенности поддержки Win32 в win32swp.C. Функция WinMain(). Регистрация класса окна. Создание окна.
- •111. Разработка приложений Win32. Отображение и перерисовка окна. Цикл обработки
- •112 Разработка приложений Win32. Функция окна. Обработка сообщений wm_paint. Обработка сообщения wm_destroy. Функция DefWIndowProc().
- •113 Подключение ресурсов. Приложение Win32 win32bar. Круговая диаграмма. Приложение pie.Cpp.
- •116. Библиотека Microsoft Foundation Classes. Необходимость библиотеки mfc. Принципы построения библиотеки mfc. Основные возможности библиотеки mfc.
- •117. Библиотека Microsoft Foundation Classes. Все начинается с cObject. Важнейшие классы библиотеки. Создание приложения mfc Windows. Выбор количества окон, которые будут поддерживаться приложением.
- •118. Библиотека Microsoft Foundation Classes. Базы данных. Поддержка составных документов. Внешний вид приложения и другие опции. Другие опции.
- •119. Библиотека Microsoft Foundation Classes. Имена файлов и классов. Создание приложения. Поработайте самостоятельно.
- •120. Упрощенное приложение. Вывод окна в приложении 23simple.Cpp. Использование afxwin.H. Создание класса, производного от cWinApp. CFrameWnd.
- •121. Упрощенное приложение. Реализация метода Inltlnstance(). Конструктор. Запуск 23simple.Cpp. Упрощение структуры облегчает сопровождение.
- •124. Диалоговые окна и элементы управления. Формирование ресурсов диалогового окна. Задание идентификаторов диалогового окна и элементов управления. Создание диалогового окна Sample Dialog.
- •128. Линейчатая диаграмма с использованием меню и окон диалога.
- •Заголовочный файл 24bar.H.
- •Заголовочный файл ресурсов 24barr.H, файл описания ресурсов 24bar.Rc и файл описания окна диалога 24bar.Dlg.
- •Исходный текст программы 24bar.Cpp.
- •Особенности Microsoft Foundation Classes, относящиеся к Windows 95 и nt.
- •Изучаем win32mfctmp.Cpp.
- •130. Научная графика с использованием ресурсов: меню, окна диалога и мультимедийного звука. Заголовочный файл win32mfcfour.H. Заголовочный файл ресурсов
84. Шаблоны приложения. Использование шаблона для создания программы, изображающей синусоиду. Файлы заголовков Windows. Файлы ресурсов. Создание программы для вывода круговых диаграмм.
пример демонстрирует использование шаблона для разработки простого приложения, которое будет изображать в своем окне синусоиду. Ниже приведен файл определения модуля для этого приложения.
NAME 22SINE
DESCRIPTION 'Simplified Windows Platform'
;Упрощенное приложение Windows
EXETYPE WINDOWS
STUB 'WINSTUB.EXE'
CODE PRELOAD MOVEABLE DISCARDABLE
DATA PRELOAD MOVEABLE MULTIPLE
HEAPSIZE 4096
EXPORTS WindowProc @1
Рисование синусоиды происходит при обработке сообщения WM_PAINT. При помощи нескольких обращений к MoveTo() и LineTo() изображаются координатные оси:
/* проводим координатные оси х и у */
MoveToEx(hdc,100,50,NULL) ;
LineTo(hdc,100,350);
MoveToEx(hdc,100,200,NULL) ;
LineTo(hdc,500,200);
MoveToEx(hdc,100,200,NULL) ;
Синусоида масштабируется непосредственно при рисовании. В этой программе амплитуда синуса составит 120 точек. Для вычисления синусов применяется функция sin(), объявленная в МАТН.Н. Для преобразования градусов в радианы необходима константа pi.
/* рисуем синусоиду */
for (i=0;i<400;i++) {
y=120.0*sin(pi*i* (360.0/400.0/180.0) ;
LineTo(hdc,i+100, (int) (200.0-у));
}
Команда New позволяет дать имя файлу проекта. Затем появится возможность командой Add добавлять компоненты, необходимые для сборки приложения. Как правило, здесь указывают только файлы с исходными текстами (.С или .СРР), файлы ресурсов (.RC) и файл определения модуля (.DEF).
В заголовочном файле(имя.H) находятся константы, используемые для идентификации различных пунктов меню и элементов окон диалога.
В файле ресурсов (имя.RC) содержится описание курсора мыши, меню ,окон диалога.
85. Управление окном Windows. Понимание полос прокрутки. Терминология полос прокрутки. Константы полос прокрутки. Диапазон полосы прокрутки. Положение полосы прокрутки. Типы полос прокрутки.
При необходимости приложение может отобразить вертикальную полосу прокрутки (scroll bar). Она расположена непосредственно снизу от кнопки развертывания окна и имеет на концах две кнопки со стрелочками вверх и вниз, а также бегунок, перемещающийся между этими кнопками. Одно из лучших применений вертикальной полосы прокрутки — быстрое перемещение по многостраничному документу. Эту возможность используют многие текстовые процессоры, например, Microsoft Word for Windows и Word Perfect.
Горизонтальная полоса прокрутки работает аналогично вертикальной, позволяя выбирать горизонтальное смещение окна в пределах документа. Одно из лучших применений горизонтальной полосы прокрутки — быстрое перемещение по столбцам электронной таблицы. Этой возможностью пользуется, например, электронная таблица Microsoft Excel.
Для создания полос просмотра достаточно в стиле редактора указать константы WS_HSCROLL и WS_VSCROLL
88. Использование графических и звуковых ресурсов в приложениях. Использование редактора ресурсов. Добавление пиктограмм. Добавление курсоров. Добавление битовых образов. Использование фонографа (Sound Recorder).
Запустить любой редактор ресурсов можно командой Resource|New.
Редактор значков Icon Editor и редактор курсоров Cursor Editor позволяют создавать растровые изображения, не зависящие от целевого устройства. Значки и курсоры, создаваемые этими редакторами, не будут зависеть от разрешающей способности устройства, на котором они будут отображаться.
Создать значок или курсор очень легко. Сначала выберите New из меню Resource. Затем выберите нужный тип ресурса из предложенного списка (Bitmap — растровое изображение, Icon — значок, Cursor — курсор).
Редактор дает возможность выбора из широкого спектра цветов для значков и разнообразных смешанных цветов для курсоров.
Специальный фонограф - Sound Recorder, предназначен для записи и воспроизведения звука
89. Разработка ресурсов меню и акселераторов клавиатуры. Основные понятия меню. Назначение меню. Ресурсы меню и компилятор ресурсов. Зарезервированные слова и опции меню. Создание акселераторов(быстрые клавиши) клавиатуры.
Оконное меню (system menu) вызывается щелчком на кнопке (или значке) оконного меню. В это меню входят стандартные команды управления окном: Restore (восстановить). Move (переместить), Size (изменить размер), Minimize (свернуть), Maximize (развернуть), Close (закрыть).
Информацию о ресурсе меню можно компилировать при помощи компилятора ресурсов. Результат компиляции (файл .RES) будет встроен в программу на этапе компоновки, в результате чего получится исполняемый файл (.ЕХЕ).
Понять структуру простого меню довольно легко. Вот файл описания ресурса:
PIEMENU MENU LOADONCALL MOVEABLE PURE DISCARDABLE
BEGIN
POPUP "Pie_Chart_Data" - подменю
BEGIN
Menultem "About Box...", IDM_ABOUT
Menultem "Data Entry...", IDM_INPUT
Menultem "Exit", IDM_EXIT
END
END
Вместо слов BEGIN и END можно использовать фигурные скобки ({}).About Box..., Data Entry... и Exit. Многоточие, следующее за названием пункта, указывает, что соответствующая команда вызывает появление окна диалога.
Если определено слишком много подменю, названия автоматически переносятся на следующую строку в главном меню. В любой момент может быть активно не более одного подменю. В названии пункта меню можно использовать символ амперсанд (&) для того, чтобы следующая за ним буква стала подчеркнутой. Каждая строка, начинающаяся ключевым словом MENUITEM, определяет один пункт меню, например "Data Entry".
Справа от названия пункта находится его идентификатор или константа. Числовые значения можно заменить идентификаторами, определенными в заголовочном файле, — например, IDM_ABOUT 40, IDM_INPUT 50 и IDM_EXIT 70 (необязательно). IDM означает, что это идентификатор пункта меню.
Быстрые клавиши чаще всего используются создателями меню в качестве "клавиш быстрого доступа" для обращения к командам меню.
94. Использование ресурсов диалоговых окон. Описатели и виды диалоговых окон. Редактор диалогов фирмы Microsoft. Необходимость редактор диалогов. Использование редактора ресурсов компилятора. Разработка простого диалогового окна About.
предпочтительным способом ввода является использование окна диалога. Окна диалога позволяют пользователям отмечать элементы в списке, устанавливать флажки опций, вводить строки и числа непосредственно с клавиатуры. Начиная с Windows 3.0, в окно диалога также может входить поле со списком. Окно диалога может быть одного из двух основных типов — модального (все остальные элементы данной программы становятся недоступными для пользователя до тех пор, пока он не закроет окно диалога, нажав кнопку ОК или Cancel (Отмена).)
и немодального (пользователь имеет возможность переключаться между окнами)
редакторов ресурсов - можно обратиться посредством команды Resource|New. позволяют быстро создавать значки, курсоры и растровые изображения. позволяют дополнить программу элементами для взаимодействия с пользователем, такими, как меню, клавиши доступа и окна диалога.
PIEMENU MENU LOADONCALL MOVEABLE PURE DISCARDABLE
BEGIN
POPUP "Pie_Chart_Data"
BEGIN
Menultem "About Box...", IDM_ABOUT
Menultem "Data Entry...", IDM_INPUT
Menultem "Exit", IDM_EXIT
END
END
Команды About Box... и Data Entry... в примере вызывают появление окна диалога. Как правило, описание окна диалога генерируется редактором диалогов Dialog Editor. Этот редактор рассчитан на считывание и редактирование ресурсов в текстовом формате (.RC) или уже откомпилированных (.RES).
Есть два способа ввести информацию о диалоге в файл ресурса (.RES)
Если вы для своего проекта создаете окно диалога с нуля, вам следует использовать меню Resource, выбрав в качестве редактора Dialog
меню File, чтобы открыть новое окно диалога. Остальные пункты — это Edit, Resource, Layout (расположение), Window и Help. Названия большинства из них говорят сами за себя; отметим лишь самые важные моменты.
Меню Edit, помимо всего прочего, позволяет быстро вернуться на шаг назад, если в процессе создания окна диалога допущена ошибка. Вы можете также вырезать, копировать, вставлять и удалять элементы, как вы делаете это в большинстве приложений Windows.
Меню Resource позволит вам увидеть список параметров конкретного управляющего элемента.
Меню Layout позволит выровнять, разнести и центрировать управляющие элементы, упорядочить кнопки, изменить размеры и так далее.
Меню Help сообщит дополнительные подробности обо всех перечисленных средствах.
описание диалога "О Программе"
ABOUTDLGBOX DIALOG DISCARDABLE 50, 300, 180, 80
STYLE DS_MODALFRAME | WS_POPUP
FONT 8, "System"
BEGIN
CTEXT "Microsoft С Pie Chart Program",-1,2,60,176,10,
NOT WS_GROUP
CTEXT "by N.Beloded",-1,2,45,176,10,
NOT WS_GROUP
PUSHBUTTON "OK",IDOK,74,10,32,14
END
95. Разработка диалоговых окон для ввода данных. Реализация простого диалогового окна About. Использование переключателей для выбора графических образов с помощью диалогового окна. Использование диалогового окна для ввода текста и целых чисел. Использование диалогового окна для ввода вещественных чисел.
описание диалога "О Программе"
ABOUTDLGBOX DIALOG DISCARDABLE 50, 300, 180, 80
STYLE DS_MODALFRAME | WS_POPUP
FONT 8, "System"
BEGIN
CTEXT "Microsoft С Pie Chart Program",-1,2,60,176,10,
NOT WS_GROUP
CTEXT "by N.Beloded",-1,2,45,176,10,
NOT WS_GROUP
PUSHBUTTON "OK",IDOK,74,10,32,14
END
Этому окну диалога присвоено имя ABOUTDLGBOX. Далее константы, задающие стиль, указывают, что окно диалога имеет рамку модального окна диалога и является раскрывающимся. В списке перечислены три управляющих элемента. Первый и второй элементы являются статическим текстом. Параметры указывают тип и расположение текста.Третий элемент — кнопка ОК
Хотя можно вводить данные и просто в рабочей области окна, предпочтительным способом ввода является использование окна диалога, поскольку здесь достигается согласованность в работе различных программ Windows.
Окна диалога позволяют пользователям отмечать элементы в списке, устанавливать флажки опций, вводить строки и числа непосредственно с клавиатуры и косвенным образом вводить вещественные числа (с плавающей точкой). Начиная с Windows 3.0, в окно диалога также может входить поле со списком. Поле со списком (combo box) — это сочетание однострочного поля редактирования с окном-списком. Окно диалога для программиста является ключевым элементом при организации в программе Windows ввода нетривиальных данных. Диалог также облегчает жизнь программиста, поскольку Windows берет на себя часть необходимых забот о нем.
Окна диалога вызываются при выборе команды из меню и появляются в виде раскрывающихся окон. Команда, которая вызывает появление окна диалога, обычно помечается многоточием после названия. Команды About Box... и Data Entry... вызывают появление окна диалога.
Инструмент "переключатель" создает небольшой кружок, называемый переключателем, справа от которого расположен пояснительный текст. Как и флажки, переключатели обычно собраны в группы. В то же время, в отличие от флажков, лишь один переключатель в группе может быть включен в данный момент.
Инструмент "статический текст" позволит вставлять в окно диалога строку текста. Его можно использовать, например, чтобы создать заголовок для редактора.
Поле со списком состоит из двух элементов. Оно представляет собой комбинацию однострочного редактора (называемого также статическим текстом) и списка. С его помощью пользователь может ввести что-либо в редактор или прокручивать список в поисках подходящего варианта. В Windows существует несколько разновидностей полей со списком.
Инструмент "редактор текста" создает небольшой прямоугольник, куда пользователь может вводить информацию в виде строк. Размер элемента редактора можно изменять, чтобы в нем помещался текст нужной длины. Строковая информация может обрабатываться непосредственно как символьное или целое значение, а также путем преобразования, как вещественное число. Редактор обычно употребляется для ввода данных.
Некоторые диалоговые окна используют поля редактирования, которые позволяют пользователю вводить числа. Процедура блока диалога может извлечь число из поля редактирования, используя функцию GetDlgItemInt, которая извлекает текст из элемента редактирования и преобразует текст в десятичные значения. Пользователь вводит число десятичными цифрами. Оно может быть или знаковое или без знака. Процедура диалогового окна может отображать целое число, используя функцию SetDlgItemInt. Эта функция преобразует знаковое или беззнаковое целое число в строку десятичных цифр.