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

4 Панель інструментів та рядок стану

4.1 Створення панелі інструментів

Будь-яка сучасна професійна програма має в своєму головному вікні різні інструментальні засоби, які значно полегшують взаємодію з користувачем. Панель інструментів (toolbar) – це сукупність растрових кнопок одного розміру (стандарт – 23 22 пікселів) і розподілювачів (Рис. 4.1). Натиснення на кнопку панелі інструментів подібно вибору одного пункту меню. По суті, панель інструментів дублює роботу меню, однак, на відміну від меню, вона більш зручна в роботі завдяки додатковим властивостям: організації підказок, встановленню різноманітних стилів і розмірів кнопок тощо.

Рис. 4.1 – Панель інструментів

Процес створення панелі інструментів і рядка стану має дуже багато спільного і складається з двох головних етапів:

  1. створення ресурсу відповідного інструментального засобу;

  2. написання програмного коду.

Далі панель інструментів заповнюється кнопками. Visual C++ надає в розпорядження користувача графічний редактор з дуже великими можливостями. По-перше можна змінити розміри кнопки (за замовчуванням кнопка має розмір 16 15 пікселів), її колір і рисунок. Після того як кнопка “нарисована”, їй необхідно присвоїти ідентифікатор. Оскільки панель інструментів, що створюється буде дублювати дію меню, тому кожній кнопці присвоюється ідентифікатор, що збігається з ідентифікатором відповідного пункту меню.

Після створення всіх необхідних кнопок панелі інструментів, можна використати також додаткові можливості візуального редактора: змінити порядок розміщення кнопок, організувати їх в групи або вилучити. Можна додати підказку для кнопки, записавши її в поле ”Prompt” в діалоговому вікні властивостей кнопок. [6]

Дозволяється задання початкового стану кнопки: натиснута, заблокована, невизначена і не натиснута (стандартний стан). При цьому не потрібно створювати різні бітові зображення для кожного стану кнопки: Windows формує необхідне зображення автоматично, обробляючи лише один заданий стан кнопки. Отже, виконавши всі ці дії, отримуємо панель інструментів, зображену на рисунку 4.1.

Рис. 4.1 - Панель інструментів

По закінченні створення панелі інструментів переходимо до створення програмного коду, що буде обробляти виклики з панелі інструментів. Потрібно додати в клас рамки вікна клас панелі інструментів: [7]

CToolBar m_wndToolBar;

В функції CMyFrameWnd::OnCreate(LPCREATESTRUCT lpCreateStruct) напишемо код для створення панелі інструментів:

if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD

| WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS

| CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||

!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))

{

TRACE0("Failed to create toolbar\n");

return -1;

}

- де, TBSTYLE_FLAT – стиль кнопки; WS_CHILD,WS_VISIBLE, CBRS_TOP,CBRS_GRIPPER,CBRS_TOOLTIPS,CBRS_FLYBY,CBRS_SIZE_DYNAMIC – стилі панелі інструментів.

4.2 Рядок стану

Рядок стану – це рядок внизу робочої області батьківського вікна, який можна розділити на декілька областей для окремого виведення в ці області тексту або графічної інформації. Найчастіше рядок стану використовується для виведення інформації про елементи меню і кнопки панелі інструментів а також для відображення індикаторів стану (наприклад індикаторів CAPSLOCK , NUMLOCK, SCROLLOCK ). Рядок стану може працювати в двох режимах – спрощеному і стандартному. В спрощеному режимі розподіл цього вікна на декілька областей неможливий і виводити на нього можна тільки текстову інформацію. В стандартному режимі прикладна програма може розбити вікно рядка стану на декілька областей для окремого виведення на них текстової і графічної інформації. [1]

Для створення рядка стану необхідно виконати такі кроки.

  1. В класі вікна програми оголосити змінну класу CStatusBar для об’єкта – рядка стану:

CStatusBar m_wndStatusBar;

  1. Створити структуру з ідентифікаторами полів, що відображаються в рядку стану.

static UINT indicators[] =

{

ID_SEPARATOR,

ID_INDICATOR_CAPS,

ID_INDICATOR_NUM,

ID_INDICATOR_SCRL,

};

  1. В функції OnCreate CMyFrameWin код для створення панелі інструментів:

if (!m_wndStatusBar.Create(this) ||

!m_wndStatusBar.SetIndicators(indicators,

sizeof(indicators)/sizeof(UINT)))

{

TRACE0("Failed to create status bar\n");

return -1;

}

Зовнішній вигляд рядка стану зображено на рисунку 4.2.

Рис. 4.2 - Рядок стану