Чтение онлайн

на главную - закладки

Жанры

Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2

Фролов Григорий Вячеславович

Шрифт:

CDaterApp;

// Overrides

 //{{AFX_VIRTUAL(CDaterApp)

public:

 virtual BOOL InitInstance;

 //}}AFX_VIRTUAL

// Implementation

 //{{AFX_MSG(CDaterApp)

 afx_msg void OnAppAbout;

 //}}AFX_MSG

 DECLARE_MESSAGE_MAP

};

Класс CDaterApp содержит конструктор, а также методы InitInstance и OnAppAbout.

Конструктор класса CDaterApp

Конструктор класса CSingleApp не выполняет никаких действий и состоит из пустого блока:

CDaterApp::CDaterApp {

 // TODO:

}

Метод OnAppAbout класса CDaterApp

Метод OnAppAbout класса CDaterApp вызывается для обработки командного сообщения с идентификатором ID_APP_ABOUT, которое посылается при выборе из меню Help строки About. Этот метод совместно с классом CAboutDlg предназначен для отображения информационной диалоговой панели About (в файле ресурсов она имеет идентификатор IDD_ABOUTBOX). Мы не будем рассматривать этот метод и класс CAboutDlg, так как они не используются для взаимодействия с базой данных.

Метод InitInstance класса CDaterApp

Наибольший интерес представляет метод InitInstance класса CDaterApp, который создает шаблон документа приложения и добавляет его к списку шаблонов приложения. Кроме того, метод InitInstance разбирает командную строку приложения, загружает поддержку трехмерных органов упрпавления и выполняет еще некоторые действия:

BOOL CDaterApp::InitInstance {

#ifdef _AFXDLL

 Enable3dControls;

#else

 Enable3dControlsStatic;

#endif

 LoadStdProfileSettings;

 CSingleDocTemplate* pDocTemplate;

 pDocTemplate = new CSingleDocTemplate(IDR_MAINFRAME, RUNTIME_CLASS(CDaterDoc), RUNTIME_CLASS(CMainFrame), RUNTIME_CLASS(CDaterView));

 AddDocTemplate(pDocTemplate);

 CCommandLineInfo cmdInfo;

 ParseCommandLine(cmdInfo);

 if (!ProcessShellCommand(cmdInfo)) return FALSE;

 return TRUE;

}

При создании шаблона документа указывается идентификатор типа документа IDR_MAINFRAME, класс документа приложения CDaterDoc, класс главного окна приложения CMainFrame и класс окна просмотра CDaterView.

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

Подробное описание метода InitInstance главного класса однооконного приложения можно получить в 24 томе серии “Библиотека системного программиста”.

Класс главного окна приложения – CMainFrame

Класс CMainFrame предназначен для управления главным окном приложения. Для этого класса определены конструктор, деструктор, методы PreCreateWindow, OnCreate, AssertValid и Dump. В него также входят два элемента данных m_wndToolBar и m_wndStatusBar, представляющие панель управления и панель состояния:

class CMainFrame : public CFrameWnd {

protected:

 CMainFrame;

 DECLARE_DYNCREATE(CMainFrame)

// Attributes

public:

// Operations

public:

// Overrides

 //{{AFX_VIRTUAL(CMainFrame)

 virtual BOOL PreCreateWindow(CREATESTRUCT& cs);

 //}}AFX_VIRTUAL

// Implementation

public:

 virtual ~CMainFrame;

#ifdef _DEBUG

 virtual void AssertValid const;

 virtual void Dump(CDumpContext& dc) const;

#endif

protected:

 CStatusBar m_wndStatusBar;

 CToolBar m_wndToolBar;

protected:

 //{{AFX_MSG(CMainFrame)

 afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);

 //}}AFX_MSG

 DECLARE_MESSAGE_MAP

};

Мы не стали приводить исходные тексты методов класса CMainFrame, так как они практически не отличаются от методов класса CMainFrame любого другого однооконного приложения созданного MFC AppWizard.

Конструктор и деструктор класса CMainFrame

Конструктор и деструктор класса CMainFrame не содержат программного кода.

Метод PreCreateWindow класса CMainFrame

Метод PreCreateWindow вызывает метод PreCreateWindow базового класса CFrameWnd и выполняет обработку по умолчанию.

Метод OnCreate класса CMainFrame

Метод OnCreate класса CMainFrame создает главное окно приложения, и размещает в нем панель управления IDR_MAINFRAME и стандаартную панель состояния.

Методы AssertValid и Dump класса CMainFrame

Методы AssertValid и Dump класса CMainFrame могут использоваться при отладке приложения.

Поделиться:
Популярные книги

Варяг

Мазин Александр Владимирович
1. Варяг
Фантастика:
альтернативная история
9.10
рейтинг книги
Варяг

Кодекс Охотника. Книга XIV

Винокуров Юрий
14. Кодекс Охотника
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XIV

Газлайтер. Том 17

Володин Григорий Григорьевич
17. История Телепата
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Газлайтер. Том 17

Главный рубильник. Расцвет и гибель информационных империй от радио до интернета

Ву Тим
Деловая литература:
о бизнесе популярно
5.00
рейтинг книги
Главный рубильник. Расцвет и гибель информационных империй от радио до интернета

На границе империй. Том 10. Часть 3

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 3

Личный враг

Кораблев Родион
26. Другая сторона
Фантастика:
боевая фантастика
рпг
фантастика: прочее
постапокалипсис
попаданцы
5.00
рейтинг книги
Личный враг

Попаданец на рыбалке. Книги 1-7

Скворцов Владимир Николаевич
Попаданец на рыбалке
Фантастика:
фэнтези
попаданцы
6.88
рейтинг книги
Попаданец на рыбалке. Книги 1-7

Монстр из прошлого тысячелетия

Еслер Андрей
5. Соприкосновение миров
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Монстр из прошлого тысячелетия

Газлайтер. Том 38

Володин Григорий Григорьевич
38. История Телепата
Фантастика:
городское фэнтези
аниме
попаданцы
5.00
рейтинг книги
Газлайтер. Том 38

Ведун

Сухов Александр Евгеньевич
1. Второй шанс
Фантастика:
фэнтези
боевая фантастика
альтернативная история
5.00
рейтинг книги
Ведун

Кости холмов

Иггульден Конн
3. Чингисхан
Проза:
историческая проза
8.12
рейтинг книги
Кости холмов

Иной. Том 5. Адская работа

Amazerak
5. Иной в голове
Фантастика:
боевая фантастика
городское фэнтези
технофэнтези
рпг
5.00
рейтинг книги
Иной. Том 5. Адская работа

Лабиринт Минотавра (сборник)

Шекли Роберт
Сборники Роберта Шекли
Фантастика:
научная фантастика
5.00
рейтинг книги
Лабиринт Минотавра (сборник)

Роза ветров

Кас Маркус
6. Артефактор
Фантастика:
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Роза ветров