- •1. Створення проекту додатку
- •2. Розроблення системи меню
- •2.1. Налаштування головного меню додатку
- •2.2. Створення контекстного меню
- •2.3. Визначення функцій-обробників повідомлень системи меню
- •2.4.Перевірка працездатності меню«Data»
- •2.4.Перевірка працездатності контекстного меню
- •3. Створення класу dbFacade
- •3.1.Заголовочний файл класу dbFacade
- •3.2.Файл реалізації класу dbFacade
- •3.3.Тестування класу dbFacade
- •4. Розроблення графічного представлення даних звітів
- •4.1. Функція CalcDocSizes( )
- •4.2. Функція OnDraw( )
- •4.3. Функція-обробник зміни шрифту
- •4.4. Функція-обробник зміни кольору фону
- •5. Додаткові елементи керування
- •5.1. Дублювання пунктів меню на панелі інструментів
- •5.2. Додавання назви звіту у рядок стану додатку
- •Висновок
- •Список рекомендованої літератури
4.4. Функція-обробник зміни кольору фону
Ця функція також додається через ClassWizard і реалізована вона наступним чином:
void CCourseView::OnViewBkcolor()
{
// TODO: Add your command handler code here
//MessageBox("OnViewBkcolor not yet implemented","View");
//Створюємо об’єкт типу CColorDialog
CColorDialog dlg;
//Якщо користувач натиснув кнопку «ОК»
if(dlg.DoModal() == IDOK)
{
//Отримуємо вибраний колір
bkColor = dlg.GetColor();
//Перемальовуємо звіт
this->Invalidate();
}
}
При натисканні на цьому пункті меню, відкривається вікно редагування кольору фону (рис.4.3):
Рис.4.3 - Вікно «Color»
5. Додаткові елементи керування
На цьому, заключному, етапі розробки нашого додатку треба модифікувати панель інструментів та рядок стану, що може спростити та полегшити роботу користувача с додатком.
5.1. Дублювання пунктів меню на панелі інструментів
На цьому етапі треба розмістити на панелі інструментів кнопки, що викликають меню редагування шрифту та кольору фону. Для цього спочатку потрібно перейти на вкладку ResourseView у створеному проекті, у дереві ресурсів обрати папку Toolbar, відкрити IDR_MAINFRAME і створити дві кнопки, що будуть при натисканні відкривати відповідні діалогові панелі. Готова панель інструментів має наступний вигляд (рис.5.1):
Рис.5.1 – Редагування панелі інструментів
У вікні властивостей обох кнопок у полі ID задамо ті ж ідентифікатори, що ми присвоювали при створенні цих же пунктів меню у головному меню «View»: ID_VIEW_FONT і ID_VIEW_BKCOLOR.
5.2. Додавання назви звіту у рядок стану додатку
На цьому етапі необхідно модифікувати рядок стану, додавши до нього індикатор, у якому буде відображатися назва відкритого у додатку звіту. Для цього необхідно перейти на вкладку ResourseView у проекті, у у дереві ресурсів обрати папку String Table, відкрити String Table (English (U.S.)), у правій області викликати контекстне меню, обирати команду New String, у вікні властивостей новоствореного рядка у полі ID ввести ID_INDICATOR_TITLE, у полі Caption - INDICATOR PLACEHOLDER (рис.5.2):
Рис.5.2 – Додавання нового рядка
Далі потрібно перейти на вкладку ClassView, відкрити реалізацію класу CMainFrame і додати новий ідентифікатор до масиву індикаторів (виділено жирним шрифтом):
static UINT indicators[] =
{
ID_SEPARATOR, // status line indicator
ID_INDICATOR_TITLE,
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
};
У клас CCourseDoc додаємо захищену (protected) функцію-член, що буде перемальовувати рядок стану, наприклад, OnUpdateTitlePanel(), яка має наступний прототип:
void OnUpdateTitlePanel(CCmdUI* pCmdUI);
Реалізація цієї функції виглядає наступним чином:
void CCourseDoc::OnUpdateTitlePanel(CCmdUI *pCmdUI)
{
pCmdUI->SetText(dbf.getTitle());
}
Щоб ця функція могла перемальовувати рядок стану, до мапи повідомлень потрібно додати наступний макрос (виділено жирним шрифтом):
BEGIN_MESSAGE_MAP(CCourseDoc, CDocument)
//{{AFX_MSG_MAP(CCourseDoc)
ON_COMMAND(ID_DATA_CLIENTS, OnDataClients)
ON_COMMAND(ID_DATA_EMPLOYEE, OnDataEmployee)
ON_COMMAND(ID_DATA_PROVIDERS, OnDataProviders)
//}}AFX_MSG_MAP
ON_UPDATE_COMMAND_UI(ID_INDICATOR_TITLE, OnUpdateTitlePanel)
END_MESSAGE_MAP()
Після виконання всіх етапів курсової роботи, додаток має наступний вигляд (рис.5.3):
Рис.5.3 - Вікно додатку