Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OOMPP_Method.doc
Скачиваний:
3
Добавлен:
24.11.2019
Размер:
673.79 Кб
Скачать

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 - Вікно додатку

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]