Управління рядком стану
Стандартної рядку стану присвоюється ідентифікатор дочірнього вікна 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).



Якщо натиснути правою клавішею миші на одному з пунктів, і в контекстному меню вибрати пункт Properties, то відкриється вікно властивостей даного пункту де можна у вікні Prompt написати підказку, яка буде відображатися в рядку стану при виборі даного пункту меню. Напишіть для кожного пункту свою підказку. Наприклад підказка для пункту Кольори ліній-> Червоний:
Малює фігуру червоним контуром.
Програмування контекстного меню. Для того щоб зробити меню контекстним необхідно додати в клас CL3_1View обробник повідомлення WM_CONTEXTMENU.
// Створення контекстного меню
void CL3_1View :: OnContextMenu (CWnd * pWnd, CPoint point)
// Зв'язуємо створене меню з ресурсом
// Конструюємо контекстне меню, таким чином,
// щоб воно раскравилась праворуч від курсора і
// пункти меню вирівнювалися по лівому краю.