Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Акселератори
Для швикдого доступу до команд використовують акселератори. Їх іноді називають " клавішами швидкого виклику" команд меню. В дійсності ж акселератори можуть бути пов'язані з будь-якими командами. Додаток всі використовувані акселератори повинно записати в одну таблицю і працювати з дескриптором цієї таблиці. Для роботи з таблицею акселераторів існує декілька функцій.. Функція CreateAcceleratorTable створює таблицю акселераторів. Кожну таку таблицю потрібно руйнувати до завершення роботи додатку. Для цього викликають функцію DestroyAcceleratorTable. Структура ACCEL задає дані одного акселератора і описана наступним чином: typedef struct { BYTE fVirt; WORD key; WORD cmd; } ACCEL; Приклад. Задача. Створити таблицю акселераторів для генерування вісьми найбільш часто використовуваних команд. Розв‘язок. #define FILE_NEW 1000 #define FILE_OPEN 1001 #define FILE_SAVE 1002 #define FILE_QUIT 1003 #define EDIT_CUT 2000 #define EDIT_PASTE 2001 #define EDIT_COPY 2002 #define EDIT_DEL 2003 … HACCEL CreateAccelTable(void) { //Масив акселераторів ACCEL Accel[8]; //Створити Accel[0].fVirt=FVIRTKEY | FCONTROL; Accel[0].key=0x4e; Accel[0].cmd=FILE_NEW; //Вікдрити Accel[1].fVirt=FVIRTKEY | FCONTROL; Accel[1].key=0x4f; Accel[1].cmd=FILE_OPEN; //Зберегти Accel[2].fVirt=FVIRTKEY | FCONTROL; Accel[2].key=0x53; Accel[2].cmd=FILE_SAVE; //Вихід Accel[3].fVirt=FVIRTKEY | FALT; Accel[3].key=0x73; Accel[3].cmd=FILE_QUIT; //Вирізати Accel[4].fVirt=FVIRTKEY | FCONTROL; Accel[4].key=0x58; Accel[4].cmd=EDIT_CUT; //Вставити Accel[5].fVirt=FVIRTKEY | FCONTROL; Accel[5].key=0x56; Accel[5].cmd=EDIT_PASTE; //Копіювати Accel[6].fVirt=FVIRTKEY | FCONTROL; Accel[6].key=0x43; Accel[6].cmd=EDIT_COPY; //Видалити Accel[7].fVirt=FVIRTKEY; Accel[7].key=0x2e; Accel[7].cmd=EDIT_DEL; Return CreateAcceleratorTable((LPACCEL) Accel, 8); }
Для того, щоб при натисканні акселераторів операційна система могла формуват відповідні повідомлення, викликають функцію TranslateAccelerator, яка перетворює повідомлення одного вигляду в інший.
IІ. ЗМІСТ ЗВІТУ 1. Тема, мета, умова завдання. 2. Опис команд, за допомогою яких було виконано завдання, і результатів їх виконання. 3. Висновок.
ІІІ. ЗАВДАННЯ Написати програму мовою програмування C++ з використанням GDI+ для реалізації завдання згідно варіанту. 1. Головне меню містить рядки " Невидимий курсор", " Звичайний курсор" і " Вихід". Створити плаваюче меню з такими ж рядками. Щоб курсор став невидимим, викликати функцію ShowCursor(0), видимим - ShowCursor(1). 2. Розділ " Користувачі" головного меню містить список користувачів. При виборі користувача в головному меню з'являються додаткові розділи. При зміні користувача змінюються й ці розділи. 3. При відкритті або створенні документу з'являється розділ " Правка" з командою " Виділити". Після вибору цієї команди в цьому розділі додаються рядки " Видалити" і " Копіювати", а команда " Виділити" відзначається галочкою (яка зникає при повторному виборі). Якщо обрати команду " Копіювати", то елемент " Видалити" заміняється елементом " Вставити". 4. Головне меню містить розділ " Файл", в якому перераховані рядки з іменами команд " Створити", " Відкрити", " Вихід". Після вибору рядків " Створити" або " Відкрити" додати рядки " Зберегти" та " Друк", а також розділ " Правка" з рядками " Вирізати", " Вклеїти", " Копіювати". Команди зв'язати з акселераторами. 5. Головне меню містить розділ " Файл" з іменами команд " Створити", " Відкрити", " Закрити", " Друк" і " Вихід", а також розділ " Правка" з рядками " Вирізати", " Вклеїти" і " Копіювати". Після вибору команди " Закрити" видалити розділ " Правка". Колманди зв'язати з акселераторами. 6. Головне меню містить розділ " Рисунок" з іменами чотирьох геометричних фігур. Після вибору фігури відобразити фігуру в певній частині вікна. При натисканні правої кнопки миші над будь-якою відображеною фігурою на місці натискання відобразити плаваюче меню з відповідними обраній фігурі командами. 7. Головне меню містить розділ " Файл" з рядками " Створити", " Відкрити", " Вихід". При виборі рядка " Створити" або " Відкрити" створити вікно, яке містить меню з розділами " Правка" і " Ефекти". Команди зв'язати з акселераторами. 8. Головне меню містить розділ " Файл" з рядками " Створити", " Відкрити" і " Вихід". При виборі рядків " Створити" або " Відкрити" створити вікно, яке містить розділ меню " Фігури" зі списком імен геометричних фігур, при виборі імені відобразити фігуру з таким ім'ям та позначити ім'я галочкою. При повторному виборі імені забрати фігуру і видаелити галочку. 9. Головне меню містить розділ " Фігури" з іменами геометричних фігур. При виборі назви фігури в головне меню додати розділ з назвою фігури та перерахуванням основних йїї параметрів в цьому розділі. При поворному натисканні повинні щезнути цей розділ і галочка. 10. Рядки головного меню розташувати в декількох лініях, а рядки плаваючого меню в одну лінію. 11. Створити плаваюче меню для вибору та встановлення вигляду курсору миші. При виборі імені вигляду курсора курсор миші повинен прийняти відповідний вигляд. 12. Головне меню містить розділ " Файл" з рядками " Новий", " Відкрити" і " Вихід" і розділ " Допомога" з рядками " Вміст" та " Про програму". При виборі рядка " Вміст" з'являються рядки " Вступ", " Частина 1", " Частина 2" і т.д., а при виборі рядка " Частина …" з'являються рядки " Розділ1", " Розділ 2" і т.д. 13. Робочу область вікна повністю займають два тимчасових вікна. Головне меню першого вікна містить розділ " Файл" з рядками " Відкрити" і " Вихід". Якщо обрати рядок " Відкрити", то в другому вікна з'являється головне меню з розділом " Правка". 14. Плаваюче меню мітсить рядки " Сховати", " Показати", " Масштаб", " Властивості". Рядок " Масштаб" вказує на тимчасове меню з чотирьох залежних рядків: " 50%", " 100%", " 150%", " 200%", при виборі один з яких відзначається кружечком. 15. Робочу область вікна додатку займають два тимчасових вікна. Головне меню першого містить розділ " Файл" з командами " Створити", " Відкрити", " Демоверсія", " Вихід". Причому станом рядка " Демоверсія" керує друге вікно. 16. Головне меню містить розділ " Файл" з рядками " Створити", " Відкрити" і " Вихід". При виборі команди " Створити" або " Відкрити" створити розділ " Правка" з рядками " Вирізати", " Вклеїти" та " Копіювати". Команди лише відображуваних рядків зв'язати з акселераторами. 17. Головне меню містить розділ " Файл", в якому перераховані рядки з іменами команд " Створити", " Відкрити" і " Вихід", які можуть бути відзначені як залежні перемикачі. Після вибору рядків " Створити" або " Відкрити" додати розділ " Правка" з командами " Вирізати", " Вклеїти" і " Копіювати", які можуть бути відзначені як незалежні прапорці. Команди відзначених рядків звзати з акселераторами. 18. Головне меню містить розділ " Фігури" з залежним списком імен геометричних фігур. При виборі імені повинна бути відображена лише ця фігура і відзначено кружечком лише її ім'я. 19. Розділ " Файл" містить рядки " Створити", " Відкрити", " Демоверсія" та " Вихід". При виборі рядка " Створити" або " Відкрити" створити вікно, що перекривається, з розділом меню " Ефекти". Список рядків розділу " Ефекти" залежить від стану рядка " Демоверсія". Команди відображених рядків меню зв'язати з акселераторами. 20. Головне меню містить розділ " Файл" з рядком " Відкрити". При виборі цього рядка в головне меню додати розділ " Правка" з рядками " Вирізати", " Копіювати" та " Видалити", видалити рядок " Відкрити" і додати рядок " Закрити". При виборі рядка " Закрити" повернутись до початкового стану. Команди відображених рядків меню зв'язати з акселераторами. 21. Робочу область вікна додатку повністю займає тимчасове вікно з порожнім головним меню. Головне меню вікна додатку містить розділ " Файл" з рядками " Відкрити" і " Закрити" (заблокований). При виборі команди " Відкрити" створити головне меню тимчасового вікна з розділом " Правка" з рядками " Вирізати", " Копіювати" і " Видалити". Після цього заблокувати рядок " Відкрити" і розблокувати команду " Закрити". При виборі рядка " Закрити" повернутись до початкового стану. 22. На місці натискання правої кнопки миші спливає меню. Якщо курсор миші ближче до верхнього або нижнього краю робочої області, то рядки меню представити в лінію, інашке -в стовпчик. 23. Головне меню містить розділ " Користувачі", в якому перераховані рядки з іменами типів користувачів. Після вибору типу користувача цей розді щезає і з'являється розділ " Дані", в якому перераховані спільні для всіх типів користувачів та типові лише для обраного типу рядки даних. Команди відображених рядків зв'язати з акселераторами. 24. Головне меню містить розділ " Кольори" з п'ятьма іменами стандартних кольорів Windows та розділ " Фігури" з іменами трьох плоских фігур. Після вибору кольору і фігури відобразити фігуру обраним кольором, а відповідні рядки меню відзначити галочкою. При повторному натисканні повинні щезнути ця фігура і галочки. 25. На місці натискання правої кнопки миші відобразити плаваюче меню, відзначені галочкою елементи якого вказуюдть на тимчасові меню, рядки яких служать залежними перемикачами. 26. Головне меню містить розділ " Студенти", в якому перераховані рядки з іменами студентів. Після вибору студента цей розділ щезає і з'являється розділ " Дані", в якому перераховані спільні для всіх студентів та типові лише для обраного студента рядки даних. Команди відображених рядків зв'язати з акселераторами. 27. Головне меню містить розділ " Кольори" з трьома іменами стандартних кольорів Windows та розділ " Фігури" з іменами чотирьох плоских фігур. Після вибору кольору і фігури відобразити фігуру обраним кольором, а відповідні рядки меню відзначити галочкою. При повторному натисканні повинні щезнути ця фігура і галочки. 28. Головне меню містить розділ " Спортсмени", в якому перераховані рядки з іменами спортсменів. Після вибору спортсмена цей розділ щезає і з'являється розділ " Дані", в якому перераховані спільні для всіх спортсменів та типові лише для обраного спортсмена рядки даних. Команди відображених рядків зв'язати з акселераторами. 29. Головне меню містить розділ " Кольори" з чотирма іменами стандартних кольорів Windows та розділ " Фігури" з іменами чотирьох плоских фігур. Після вибору кольору і фігури відобразити фігуру обраним кольором, а відповідні рядки меню відзначити галочкою. При повторному натисканні повинні щезнути ця фігура і галочки. 30. Головне меню містить розділ " Викладачі", в якому перераховані рядки з прізвищами викладачів. Після вибору викладача цей розділ щезає і з'являється розділ " Дані", в якому перераховані спільні для всіх викладачів та типові лише для обраного викладача даних. Команди відображених рядків зв'язати з акселераторами.
IV. КОНТРОЛЬНІ ПИТАННЯ
1. Основні види меню та різниця між ними? 2. Алгоритм створення головного меню? 3. Функції роботи з меню. 4. Що таке плаваючі меню? 5. Що таке акселератори?
|