Управління рядком стану

Стандартної рядку стану присвоюється ідентифікатор дочірнього вікна AFX_IDW_STATUS_BAR. Саме його каркас додатків шукає для виведення підказки за елементами меню. Обробники повідомлень поновлення користувальницького інтерфейсу використовують три ідентифікатора строкових ресурсів для індикаторів стану клавіатури в базовому класі вікна-рамки: ID_INDICATOR_CAPS, ID_INDICATOR_NUM і ID_INDICATOR_SCRL. Щоб самому керувати рядком стану, потрібно застосувати інший ідентифікатор дочірнього вікна і інші константи для індикаторів.

Ідентифікатор для вікна рядка стану призначається викликом CstatusBar :: Create в функції-члені OnCreate похідного класу вікна-рамки. Ця функція міститься в файлі MainFrm.cpp, генерований AppWizard. Ідентифікатор вікна - третій параметр функції Create і за замовчуванням дорівнює AFX_IDW_STATUS_BAR.

Щоб призначити свій ідентифікатор, замініть виклик

на m_wndStatusBar.Create (this, WS_CHILD | WS_VISIBLE | CBRS_BOTTOM, ID_MY_STATUS_BAR),

Стандартне меню View, що формується каркасом додатків, дозволяє вмикати або вимикати показ смужки стану. Ця логіка реалізується кодом, що використовують ідентифікатор вікна AFX_IDW_STATUS_BAR, який теж доведеться змінити. У своєму похідному класі вікна-рамки напишіть елементи таблиці повідомлень і обробники для команди ID_VIEW_STATUS_BAR і повідомлень, пов'язаних з оновленням інтерфейсу. ID_VIEW_STATUS_BAR - це ідентифікатор елемента меню Status Bar. Обробники в похідному класі скасовують стандартні обробники з базового класу CFrameWnd.

Контрольні питання:

Які види меню ви знаєте?

Що таке панель інструментів?

Що таке рядок стану?

Які секції є в рядку стану?

Який клас відповідає за роботу з рядками стану?

Який клас відповідає за роботу з панелями інструментів?

Який клас відповідає за роботу з меню?

Лабораторна робота 3.1

Створіть стандартний проект і назвіть його L3_1.

Створення ресурсів меню.

Для того щоб створити меню необхідно виконати команду меню Insert-> Resource, у вікні вибрати Menu і натиснути кнопку Add (Рис. 3.1.1).

Управління рядком стану
Після цього необхідно перейти на вкладку Resource View (Рис. 3.1.2) і вибравши ваш ресурс меню приступити до його редагування.
Управління рядком стану
Для того щоб коректно відображалися символи кирилиці потрібно натиснути правою клавішею на ресурсі вашого меню, і в контекстному меню вибрати пункт Properties. Далі перед вами відкриється вікно властивостей, в якому слід встановити українську мову (Ріс.3.1.3).
Управління рядком стану
Створіть два ресурсу меню, такі, як показано на малюнку 3.1.4

Якщо натиснути правою клавішею миші на одному з пунктів, і в контекстному меню вибрати пункт Properties, то відкриється вікно властивостей даного пункту де можна у вікні Prompt написати підказку, яка буде відображатися в рядку стану при виборі даного пункту меню. Напишіть для кожного пункту свою підказку. Наприклад підказка для пункту Кольори ліній-> Червоний:

Малює фігуру червоним контуром.

Програмування контекстного меню. Для того щоб зробити меню контекстним необхідно додати в клас CL3_1View обробник повідомлення WM_CONTEXTMENU.

// Створення контекстного меню

void CL3_1View :: OnContextMenu (CWnd * pWnd, CPoint point)

// Зв'язуємо створене меню з ресурсом

// Конструюємо контекстне меню, таким чином,

// щоб воно раскравилась праворуч від курсора і

// пункти меню вирівнювалися по лівому краю.