Microsoft Visual C++ и MFC. Программирование для Win95 и WinNT

         

Microsoft Visual C++ и MFC. Программирование для Win95 и WinNT

Аннотация
Введение
Microsoft Visual C++

Microsoft Visual C++ версия 4.0
Следующие версии Microsoft Visual C++
Как связаться с авторами
Благодарности
Немного о C++
Ввод/вывод
Константы
Ссылки
Распределение памяти
Операторы new и delete



Перегрузка имен функций
Задание параметров функции по умолчанию
Встраивание
Классы
Ключевое слово this
Разграничение доступа к элементам класса
Методы, входящие в класс
Конструкторы и деструкторы класса
Методы, не изменяющие объекты класса
Статические методы

Общие члены объектов класса
Дружественные функции и дружественные классы
Дружественные функции
Дружественные классы
Наследование
Единичное наследование
Множественное наследование
Разграничение доступа к элементам базового класса
Переопределение методов базового класса

Виртуальные методы
Абстрактные классы
Структуры
Шаблоны
Шаблоны в MFC
Перегрузка операторов
Обработка исключительных ситуаций
Операторы try, throw и catch

Универсальный обработчик исключений
Тип исключения
Введение в MFC
Классы библиотеки MFC
Самый базовый класс MFC (класс CObject)
Основа структуры приложения (класс CCmdTarget)
Подзадачи приложения (классы CWinThread и CWinApp)
Документ приложения (класс CDocument)
Шаблон документов (классы CDocTemplate, CSingleDocTemplate и CMultiDocTemplate)

Окна (класс CWnd)
Исключения (класс CException)
Массивы, списки и словари
Файловая система (класс CFile)
Контекст отображения (класс CDC)
Объекты графического интерфейса (класс CGdiObject)
Меню (класс CMenu)

Базы данных (классы для работы с базами данных)
Синхронизация задач приложения (класс CSyncObject)
Сокеты (классы CAsyncSocket и CSocket)
Классы, не имеющие базового класса
Простые классы
Архивный класс (класс CArchive)
Информация о классе объекта (структура CRuntimeClass)
Отладка приложения (классы CDumpContext, CMemoryState)
Печать документа (класс CPrintInfo)
Первое приложение MFC

Окно Project Workspace
Средства ClassView 
Добавление к классу нового метода
Добавление к классу нового элемента данных

Просмотр дерева наследования классов
Редактирование методов класса
Редактирование элементов данных класса
Приложение с единственным окном

Обработка сообщений
Оконные сообщения
Сообщения от органов управления
Командные сообщения
Таблица сообщений
Макрокоманда ON_WM_name
Макрокоманда ON_REGISTERED_MESSAGE
Макрокоманда ON_MESSAGE
Макрокоманда ON_COMMAND

Макрокоманда ON_COMMAND_RANGE
Макрокоманда ON_UPDATE_COMMAND_UI
Макрокоманда ON_UPDATE_COMMAND_UI_RANGE
Макрокоманда ON_name
Макрокоманда ON_CONTROL_RANGE
Забегая вперед
Приложение MFMenu
Ресурсы приложения
Создание меню для приложения MFMenu

Долгий путь сообщения
Диалоговая панель
Приложение с модальной диалоговой панелью
Главный класс приложения
Класс диалоговой панели
Обмен данными

Приложение с немодальной диалоговой панелью
Некоторые классы MFC
Класс CObject - основной класс MFC
Конструкторы класса
Оператор присваивания

Диагностика
Проверка целостности объектов класса
Получение дампа объекта класса
Сохранение и восстановление состояния объекта
Метод IsSerializable
Виртуальный метод Serialize
Информация о классе
Виртуальный метод GetRuntimeClass
Метод IsKindOf
Класс CPoint - точка на плоскости

Класс CSize - относительные координаты
Класс CString - текстовые строки
Конструктор класса
Коллекции
Массивы - шаблон CArray
Списки - шаблон CList

Microsoft Visual C++ и MFC. Программирование для Win95 и WinNT

Словари - шаблон CMap
Класс CTime - дата и время
Открытие и создание файлов
Идентификатор открытого файла
Закрытие файлов
Чтение и запись файлов

Метод Flush
Операции с файлами
Блокировка
Позиционирование
Характеристики открытого файла
Файловая система - классы CMemFile и CStdioFile
Модификация класса CMemFile

Файловая система - класс CStdioFile
Приложение TestFile
Класс CException

Класс CMemoryException
Класс CFileException
Приложение Except
Класс CArchiveException
Класс CNotSupportedException
Класс CResourceException
Класс CUserException
Запись и восстановление объектов

Запись в архивный файл
Чтение из архивного файла
Многозадачные приложения
Приложение с главной диалоговой панелью
Создание приложения средствами MFC AppWizard

Приложение Dialog
Имена, используемые MFC
Диалоговые панели приложения Dialog
Пиктограмма
Таблица текстовых строк
Версия
Исходные тексты приложения

Главный класс приложения Dialog
Таблица сообщений класса CDialogApp
Главный объект приложения
Метод InitInstance
Класс главной диалоговой панели приложения

Таблица сообщений класса CDialogDlg
Конструктор класса CDialogDlg
Метод DoDataExchange
Метод OnInitDialog
Метод OnSysCommand (системное меню)
Метод OnPaint (отображение пиктограммы приложения)

Метод OnQueryDragIcon
Файлы StdAfx.cpp и StdAfx.h
Средства ClassWizard
Создание нового класса
Включение в класс новых методов
Включение в класс новых элементов данных
Просмотр характеристик класса
Однооконный интерфейс

Модель “документ - окно просмотра”
Процедура создания однооконного приложения
Приложение Single

Шаблон меню
Панель управления toolbar
Таблица акселераторов
Версия

Общие замечания о ресурсах приложения
Классы приложения
Класс CSingleApp
Таблица сообщений класса CSingleApp
Конструктор класса CSingleApp
Метод OnAppAbout

Класс CSingleDoc
Таблица сообщений класса CSingleDoc
Конструктор и деструктор класса CSingleDoc
Методы OnNewDocument и Serialize
Методы AssertValid и Dump
Класс CSingleView
Таблица сообщений класса CSingleView
Конструктор и деструктор класса CSingleView
Метод GetDocument
Метод PreCreateWindow

Метод OnDraw
Методы OnPreparePrinting, OnBeginPrinting и OnEndPrinting
Класс CMainFrame
Таблица сообщений класса CMainFrame
Конструктор и деструктор класса CMainFrame
Метод OnCreate
Панель управления и панель состояния
Панель управления
Панель состояния

Обработка командных сообщений
Порядок обработки сообщений
Главное окно однооконного приложения
Окно просмотра
Документ
Командные сообщения и приложение Single

Изменение порядка обработки сообщений
Стандартные командные сообщения
Командные сообщения с идентификаторами ID_FILE_
Командные сообщения с идентификаторами ID_EDIT_
Командные сообщения с идентификаторами ID_WINDOW_
Командные сообщения с идентификаторами ID_APP_
Командные сообщения с идентификаторами ID_HELP_
Командные сообщения с идентификаторами ID_VIEW_

Простейший графический редактор
Создание нового документа
Сохранение и восстановление документа на диске
Для забывчивых пользователей
Простейший текстовый редактор
Заключение
Литература

Microsoft Visual C++ и MFC. Программирование для Win95 и WinNT

Новые версии Visual C++
Microsoft Visual C++ версия 4.2
Сеть Internet
Базы данных

Стандартная библиотека языка Си++
Win32s посвящается
Microsoft Visual C++ версия 4.2, Enterpise Edition
Visual C++ и Visual J++
Ресурсы Microsoft
Многооконный интерфейс
Приложение Multi

Ресурсы приложения
Национальные ресурсы
Шаблон меню
Пиктограмма
Панель управления toolbar
Таблица акселераторов
Диалоговая панель
Версия приложения
Таблица текстовых строк

Классы приложения Multi
Конструктор класса CMultiApp
Метод InitInstance класса CMultiApp
Таблица сообщений
Класс главного окна приложения
Конструктор и деструктор класса CMainFrame

Таблица сообщений класса CMainFrame
Метод OnCreate класса CMainFrame
Метод PreCreateWindow класса CMainFrame
Методы AssertValid и Dump класса CMainFrame
Класс дочернего окна MDI
Конструктор и деструктор класса CChildFrame
Таблица сообщений класса CChildFrame
Метод PreCreateWindow класса CChildFrame
Методы AssertValid и Dump класса CChildFrame
Класс документа приложения

Конструктор и деструктор класса CMultiDoc
Таблица сообщений класса CMultiDoc
Методы OnNewDocument и Serialize класса CMultiDoc
Методы AssertValid и Dump класса CMultiDoc
Класс окна просмотра документа
Метод GetDocument класса CMultiView
Таблица сообщений класса CMultiView
Конструктор и деструктор класса CMultiView
Метод PreCreateWindow класса CMultiView
Метод OnDraw класса CMultiView

Методы класса CMultiView, предназначенные для печати
Главное окно многооконного приложения
Окна MDI и главное окно однооконного приложения
Многооконный графический редактор

Синхронизация окон просмотра документа
Комбинированный редактор
Создание нового класса документа и класса окна просмотра
Создание шаблона текстовых документов
Ресурсы текстовых документов
Приложение готово

Повторное использование кода
Компоненты
Добавление компонентов в проект
Управление компонентами
Компоненты Microsoft
Добавление компонент Microsoft
Заставка для приложения
Как устроен компонент Splash Screen
Метод PreTranslateMessage класса CMultiApp

Класс CSplashWnd
Конструктор и деструктор класса CSplashWnd
Таблица сообщений класса CSplashWnd
Метод OnCreate класса CSplashWnd
Метод OnPaint класса CSplashWnd
Метод OnTimer класса CSplashWnd
Метод EnableSplashScreen класса CSplashWnd

Метод ShowSplashScreen класса CSplashWnd
Метод PreTranslateAppMessage класса CSplashWnd
Метод Create класса CSplashWnd
Метод HideSplashScreen класса CSplashWnd
Метод PostNcDestroy класса CSplashWnd
Органы управления OCX
Меню, панели управления и панели состояния
Меню

Меню без класса CMenu
Метод Create
Метод LoadFrame
Класс CMenu
Конструктор класса CMenu
Метод LoadMenu
Метод SetMenu класса CWnd
Класс CCmdUI
Меню
Панели управления и панели состояния

Органы диалоговых панелей управления
MFC ClassWizard и команды обновления
Методы класса CCmdUI
Метод Enable
Метод SetCheck
Метод SetRadio
Метод SetText
Элементы данных класса CCmdUI
Ресурсы клавиш акселераторов

Приложение MultiMenu
Как работает приложение MultiMenu

Главный класс приложения CMultiMenuApp
Класс главного окна приложения CMultiMenuWindow
Конструктор класса CMultiMenuWindow
Таблица сообщений класса CMultiMenuWindow
Метод OnCreate класса CMultiMenuWindow
Метод OnDisable класса CMultiMenuWindow
Метод OnCommand класса CMultiMenuWindow
Метод OnConstruct класса CMultiMenuWindow
Методы OnRestrictMenu и OnFullMenu класса CMultiMenuWindow
Метод OnUpdateProcess класса CMultiMenuWindow

Метод OnUpdateConstruct класса CMultiMenuWindow
Метод OnUpdateDisable класса CMultiMenuWindow
Метод OnMenuExit класса CMultiMenuWindow
Component Gallery и контекстное меню
Класс CMultiView
Метод OnContextMenu класса CMultiView
Метод PreTranslateMessage класса CMultiView

Редактор панели управления
Как хранится ресурс, описывающий панели управления

Microsoft Visual C++ и MFC. Программирование для Win95 и WinNT

Новая кнопка в панели управления
Классы панелей управления
Метод SetBarStyle класса CControlBar
Метод GetBarStyle класса CControlBar

Простое приложение с панелью управления
Создание новой панели управления
Копирование панели управления
Как устроено приложение CBarApp
Дополнительные панели управления

Положение панели управления
Метод EnableDocking класса CFrameWnd
Метод EnableDocking класса CControlBar
Методы DockControlBar и FloatControlBar класса CFrameWnd
Форма панели управления
Дополнительные возможности панели управления
Недокументированные возможности класса CMainFrame

Приложение MultiBar
Ресурсы приложения MultiBar
Панели управления приложения MultiBar
Панель управления Player
Панель управления Extended
Панель управления Slyle
Как устроено приложение MultiBar
Главный класс приложения CMultiBarApp
Метод OnCreate класса CMultiBarWindow

Команды панелей управления
Методы BarCommandOne и BarCommandRange класса CMultiBarWindow
Метод AddStringToComboBox класса CMultiBarWindow
Диалоговая панель управления

Методы класса CDialogBar
Процедура создания диалоговой панели управления
Приложение DialogBar
Как работает приложение DialogBar

Главный класс приложения CDlgBarApp
Класс главного окна приложения CDlgBarWindow
Конструктор класса CDlgBarWindow
Таблица сообщений класса CDlgBarWindow
Метод OnCreate класса CDlgBarWindow
Метод DlgBarCombo класса CDlgBarWindow
Метод BarCommand класса CDlgBarWindow
Диалоговая панель управления и MFC AppWizard
Как создать панель управления во время работы приложения
Панель состояния

Ресурсы приложений и панель состояния
Класс панели состояния
Как создать панель состояния
Отображение текста в панели состояния
Дополнительные возможности панели состояния
Приложение Status

Как работает приложение Status
Класс главного окна приложения CStateWindow

Конструктор класса CStateWindow
Таблица сообщений класса CStateWindow
Метод OnCreate класса CStateWindow
Метод OnMenuProcessBar класса CStateWindow
Метод OnMenuDirectADD_SUB класса CStateWindow
Методы OnMenuSwitchTEXT и OnUpdateTEXT класса CStateWindow
Метод OnMenuExit класса CStateWindow
Стандартные диалоговые панели
Панель выбора цвета

Методы класса CColorDialog
Панель выбора файлов
Методы класса CFileDialog
Приложение FileDlg
Виртуальные методы класса CFileDialog
Панель для выбора шрифта

Методы класса CFontDialog
Панели для вывода документа на печать
Панель для выполнения поиска и замены
Базы данных и библиотека MFC
Создание базы данных
MFC AppWizard и базы данных

Доводка приложения
Как устроено приложение Dater
Главный класс приложения - CDaterApp
Конструктор класса CDaterApp
Метод OnAppAbout класса CDaterApp
Метод InitInstance класса CDaterApp
Класс главного окна приложения - CMainFrame

Класс документа приложения - CDaterDoc
Конструктор и деструктор класса CDaterDoc
Метод PreCreateWindow класса CDaterDoc
Методы AssertValid и Dump класса CDaterDoc
Класс окна просмотра приложения - CDaterView
Конструктор и деструктор класса CDaterView

Метод PreCreateWindow класса CDaterView
Метод GetDocument класса CDaterView
Метод OnGetRecordset класса CDaterView
Метод OnInitialUpdate класса CDaterView
Метод DoDataExchange класса CDaterView
Методы AssertValid и Dump класса CDaterView
Класс записи базы данных - CDaterDoc
Конструктор класса CDaterSet
Метод GetDefaultConnect класса CDaterSet
Метод GetDefaultSQL класса CDaterSet

Метод DoFieldExchange класса CDaterSet
Методы AssertValid и Dump класса CDaterSet
Ресурсы приложения Dater
Обнаруженные опечатки

Литература
Для самостоятельного изучения