Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2
Шрифт:
MFC AppWizard не совсем правильно работает с текстовым драйвером и этот метод содержит ошибку. Вы должны убрать из него две лишние квадратные скобки. Исправленный метод будет выглядеть следующим образом:
Все! Теперь можно построить проект и запустить полученное приложение. На экране откроется главное окно приложения Dater (рис. 5.15). В окне просмотра отображаются поля базы данных Address Pad. Вы можете просмотреть все записи базы, используя меню Record и панель
Рис. 5.15. Приложение Dater
Как устроено приложение Dater
Список всех классов, входящих в проект Dater, а также их методов можно просмотреть в окне Project Workspace на странице ClassView (рис. 5.16).
Рис. 5.16. Окно Project Workspace, страница ClassView
В приложение Dater входят следующие классы.
Класс | Базовый класс | Назначение |
---|---|---|
CAboutDlg | CDialog | Управляет информационной диалоговой панелью About |
CDaterApp | CWinApp | Главный класс приложения |
CDaterDoc | CDocument | Представлляет документ приложения |
CDaterSet | CRecordset | Представлляет запись таблицы базы данных |
CDaterView | CRecordView | Управляет окном просмотра приложения. В этом окне отображаются записи таблицы базы данных |
CMainFrame | CFrameWnd | Главное окно приложения |
Класс CDaterApp приложения Dater не содержит в себе ничего особенного и практически не отличается от соответствующего класса однооконного приложения Single, созданного MFC AppWizard и не работающего с базами данных:
Класс CDaterApp содержит конструктор, а также методы InitInstance и OnAppAbout.
Конструктор класса CSingleApp не выполняет никаких действий и состоит из пустого блока:
Метод OnAppAbout класса CDaterApp вызывается для обработки командного сообщения с идентификатором ID_APP_ABOUT, которое посылается при выборе из меню Help строки About. Этот метод совместно с классом CAboutDlg предназначен для отображения информационной диалоговой панели About (в файле ресурсов она имеет идентификатор IDD_ABOUTBOX).
Мы не будем рассматривать этот метод и класс CAboutDlg, так как они не используются для взаимодействия с базой данных.Наибольший интерес представляет метод InitInstance класса CDaterApp, который создает шаблон документа приложения и добавляет его к списку шаблонов приложения. Кроме того, метод InitInstance разбирает командную строку приложения, загружает поддержку трехмерных органов упрпавления и выполняет еще некоторые действия:
При создании шаблона документа указывается идентификатор типа документа IDR_MAINFRAME, класс документа приложения CDaterDoc, класс главного окна приложения CMainFrame и класс окна просмотра CDaterView.
В приложении определен целый ряд ресурсов с этим идентификатором – меню, панель управления, таблица акселераторов, пиктограмма и строковый ресурс. Наиболее интересны для нас сейчас меню и панель управления, так как они содержат строки и кнопки, управляющие просмотром записей базы данных.
Подробное описание метода InitInstance главного класса однооконного приложения можно получить в 24 томе серии “Библиотека системного программиста”.
Класс CMainFrame предназначен для управления главным окном приложения. Для этого класса определены конструктор, деструктор, методы PreCreateWindow, OnCreate, AssertValid и Dump. В него также входят два элемента данных m_wndToolBar и m_wndStatusBar, представляющие панель управления и панель состояния: