Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
MFC містить багато класів, які можна використовувати для створення програмних додатків. Так, зокрема, MFC забезпечує такі основні категорії класів: класи прикладки, класи вікон, меню, класи діалогових вікон, класи доку-ментів та вигляду, класи елементів керування, графіки, архівування та доступу до файлів, класи баз даних, різні класи підтримки.
Якщо досліджувати ієрархію MFC класів, можна побачити, що майже кожен клас у бібліотеці походить з класу CObject. Складається враження, що CObject, який знаходиться у вершині MFС за структурою величезний і складний. Однак, як це не дивно, CObject один з найменших класів у MFC. Будь-який клас користувача, який призначається для збереження або завантаження даних (так званий процес серіалізації), має виводитися безпосередньо або побічно, від CObject.
CObject забезпечує: підтримку серіалізації, ведення інформації про виконання класу, вивід діагностичної інформації, сумісність з іншими класами.
CObject не підтримує множинну спадкоємність. Класи користувача можуть мати тільки один базовий клас CObject.
Властивості СObject успадковані декількома класами. Стисла їх схема наведена на рисунку 2.1.
CObject
CExeption
CFile
CCmdTarget
CDC
CGDIObject
CWinThread
CWnd
CMenu
CFrameWnd
CWinApp
Рисунок 2.1 Ієрархія звязків декількох основних класів MFC
Серед класів-спадкоємців СObject CCmdTarget, CException, CFile, CMenu, CDC, CGdiObject.
CCmdTarget є базовим класом, який забезпечує механізм обробки пові-домлень. Ця обробка ведеться за допомогою спеціальної карти повідомлень, яка направляє команди на виконання спеціально призначеній функції обробнику повідомлення.
CException забезпечує обробку усіх виключних ситуацій MFC.
CFile базовий клас для обробки файлів, який безпосередньо забезпечує функції введення-виведення. CFile разом з класом CArchive класом забезпечують процес серіалізації обєктів MFC.
Клас CMenu реалізує меню Windows і за своїми властивостями походить зі структури HMENU. Він забезпечений функціями-членами для створення, відображення, модифікації та вилучення меню.
Клас CDC визначає так звані об'єкти контексту пристрою. Об'єкти класу CDC забезпечують функції роботи з контекстом пристрою. Контекстом пристрою можуть бути дисплей або принтер, тому у CDC забезпечуються функції роботи з контекстом дисплея, пов'язаним з клієнтською областю вікна програми.
Клас CGdiObject є базовим у взаємодії із інтерфейсом GDI системи Windows (інтерфейс графічних пристроїв) і забезпечує обробку бітових зображень, піря, пензлів, палітр, шрифтів. Обєкти CGdiObject ніколи не створюються безпосередньо, використовуються лише обєкти похідних класів. Скоріше за все, ви створюватимете об'єкти похідних від CGdiObject класів, наприклад, типу CPen або CBrush (відповідно перо та пензель).
Від класу CCmdTarget породжується дуже важливий MFC клас CWnd. CWnd забезпечує основні функціональні можливості всіх класів вікна у бібліотеці MFC.
Функція ініціалізації прикладки входить до класу CApp. Її текст наведено у прикладі 2.3:
Приклад 2.3 реалізація функції ініціалізації прикладки
// файл App.cpp
BOOL CApp::InitInstance()
{ m_pMainWnd = new CMainWin; // створення обєкта вікна
m_pMainWnd->ShowWindow(m_nCmdShow); // відображення вікна
m_pMainWnd->UpdateWindow(); // оновлення вікна
return TRUE;
}
Слід дещо прокоментувати написане. Першим рядком динамічно створюється обєкт класу вікна, який повязується із покажчиком (m_pMainWnd член класу CWinApp) на головне вікно, що повязане із прикладкою. Тобто надалі, m_pMainWnd описує вікно. Далі: головне вікно виводиться на екран функцією ShowWindow() та оновлюється UpdateWindow(). У разі успішного виконання функція InitInstance() завжди повертає TRUE.
Функція ShowWindow(parameter) використовує один параметр режим відображення вікна. Такими режимами можуть бути: SW_HIDE, SW_MINIMIZE, SW_SHOWMAXIMIZED, SW_SHOWMINIMIZED, SW_SHOWNORMAL відповідно відображення скритого, мінімізованого, максимізованого за розміром вікна та його відображення у нормальному (за замовчуванням) режимі Windows. Якщо вікно відкривається вперше, у функцію ShowWindow() передається параметр m_pCmdShow (змінна-член класу CWinApp), який визначає спосіб вигляду го-ловного вікна при запуску програми, що й зроблено у нашому випадку.