13. Способы создания меню (Ответы на вопросы билетов)

PDF-файл 13. Способы создания меню (Ответы на вопросы билетов) API Windows (15973): Ответы (шпаргалки) - 6 семестр13. Способы создания меню (Ответы на вопросы билетов) - PDF (15973) - СтудИзба2017-12-28СтудИзба

Описание файла

Файл "13. Способы создания меню" внутри архива находится в следующих папках: Ответы на вопросы билетов, WinAPI - Ответы на вопросы билетов. PDF-файл из архива "Ответы на вопросы билетов", который расположен в категории "". Всё это находится в предмете "api windows" из 6 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "к экзамену/зачёту", в предмете "api windows" в общих файлах.

Просмотр PDF-файла онлайн

Текст из PDF

1.Способы создания менюМеню – важный элемент пользовательского интерфейса Windows. Существует несколько типов меню:1) Меню приложения; 2) Временное меню; 3) Многоуровневое меню; 4) Плавающее меню.Включение меню может быть произведено несколькими (тремя) методами:1) С помощью текстового редактора (простой способ)2) С помощью графического редактора3) Непосредственно в оперативной памятиРассмотрим наиболее часто используемые способы создания меню.1. Создание меню в файле ресурсова) Описание шаблона в файле ресурсовnameID MENU [load] [mem] – необязательные параметрыBEGIN. .

.ENDnameID – для идентификации шаблона меню (строка, число от 1 до 65535).MENU – служебное слово[load] – необязательный; определяет момент загрузки меню в память. (PRELOAD – загрузка сразу послезапуска приложения LOADONCALL – загрузка только при отображении меню)[mem] – необязательный; влияет на тип памяти, выделяемой для хранения шаблона (FIXED, MOVEABLE,DISCARDABLE – не перемещаемый, перемещаемый (по умолчю.), освобождаемый).б) Описание операторов временных меню POPUPPOPUP text [, param]BEGIN. .

.ENDв) Описание операторов строк MENUITEMMENUITEM text, id [, param] // располагаются между BEGIN и ENDtext – имя строки, буква после & будет подчеркнута, \t – табуляция, \a – выравнивает по правойграницеid – определяет число, кот.идентиф-ет пункт меню. (приложение получит его с сообщениемWM_COMMAND при выборе данного меню)[param] – бывает CHECKED √, GRAYED, INACTIVE (не активная, но не серая) и другие (MENUBREAK,MENUBARBREAK, HELP – слева от текста вертикальная линия)MENUITEM SEPARATOR// создание горизонтальной разделительной линииг) Пример меню#include "menu.hpp"APP_MENU MENUBEGINPOPUP "&File"BEGINMENUITEM "&New",MENUITEM "&Open...",ENDENDCM_FILENEWCM_FILEOPENКонстанты лучше описывать в отдельном файле "menu.hpp":#define CM_FILEOPEN#define CM_FILENEW2433224331д) Подключение меню к окну приложения1) При регистрации класса:Для подключения меню необходимо записать адрес текстовой строки "APP_MENU" в полеlpszMenuName структуры wc, имеющей тип WNDCLASS:wc.lpszMenuName = "APP_MENU";2) При создании окна:hwnd = CreateWindow(…, APP_MENU, …) -окон нет меню.девятый параметр – идентификатор меню.

У дочерних2. С помощью функций в теле программыПриведем перечень основных функций для работы с меню:1.HMENU WINAPI CreateMenu(void);//Создает пустое меню, возвращает ID меню в случае успеха,NULL иначе2.HMENU WINAPI CreatePopupMenu(void); // Для создания пустого временного меню3.HMENU WINAPI DestroyMenu(void); // Для удаления меню (перед завершением работы)4. Для подключения к окну с идентификатором hwnd меню с идентификатором hmenu вы можетевоспользоваться функцией: BOOL WINAPI SetMenu(HWND hwnd, HMENU hmenu);Перед вызовом этой функции вы должны загрузить меню и получить его идентификатор, например,при помощи функции LoadMenu.5.

Для добавления строк в пустые меню можно воспользоваться функцией:BOOL WINAPI AppendMenu(HMENU hmenu, UINT fuFlags, UINT idNewItem, LPCSTR lpszNewItem);UINT fuFlags определяет атрибуты элемента меню (MF_CHECKED – √, MF_GRAYED – строка серая,неактивная, MF_ENABLED – нормальный вид, MF_POPUP – с данным элементом связывается временноеменю, MF_STRING – элемент является строкой символов).idNewItem – указывается идентификатор создаваемой строки меню, если это не MF_POPUPlpszNewItem – разные значения в зависимости от флага (подпись строки, как правило)AppendMenu(hmenu, MF_ENABLED|MF_POPUP{или MF_STRING},(UINT)hmenuFile {или IDM_FOUR}, "File");6. Для перерисовки полосы меню для hwnd окна: void WINAPI DrawMenuBar(HWND hwnd);_______________________________________________________________________________7.

Вставка команды между имеющимися строками:BOOL WINAPI InsertMenu(HMENU hmenu, UINT idItem, UINT fuFlags, UINT idNewItem, LPCSTR lpszNewItem);Есть 2 флага (MF_BYCOMMAND и MF_BYPOSITION), в зависимости от которых idItem определитидентификатор или порядковый номер элемента, перед которым будет вставка). Для добавления в конец,необходимо написать -1.8. Для изменения строк – функция (после нее нужна перерисовка):BOOL WINAPI ModifyMenu(HMENU hmenu, UINT idItem, UINT fuFlags, UINT idNewItem, LPCSTRlpszNewItem);9. Удаление элементов меню: BOOL WINAPI DeleteMenu(HMENU hmenu, UINT idItem, UINT fuFlags);10. Удаление элементов меню без освобождения занятых им ресурсов:BOOL RemoveMenu(hmenu, idItem, fuFlags)11.

Для изменения состояния элемента меню удобно использовать:BOOL WINAPI EnableMenuItem(HMENU hmenu, UINT idItem, UINT uEnable);3 – флаги: MF_DISABLED, MF_ENABLED, MF_GRAYED+ 2 предыд.2 – зависит от 2 флагов, либо номер, либо идентификатор._________________________________________________________________________________12. Для определения идентификатора меню:HMENU WINAPI GetMenu(HWND hwnd);HMENU WINAPI GetSubMenu(HMENU hmenu, int nPos); - для временного (2 - порядковый № вр. меню)14. Количество элементов меню – int WINAPI GetMenuItemCount(HMENU hmenu);15. Возвращает Старший байт содержит кол-во элементов в меню, младший – набор флагов.UINT WINAPI GetMenuState(HMENU hmenu, UINT idItem, UINT fuFlags);В зависимости от 3 параметрара, второй – либо №, либо идентификатор._________________________________________________________________________________Сообщения от меню:1.

WM_INITMENU – посылается в адрес окна в момент отображения меню (когда вынажимаете на строку в полосе меню или активизируете временное меню при помощи клавиатуры)2. WM_INITMENUPOPUP - -//- перед инициализацией временного меню3. WM_COMMAND – при выборе пункта меню4. WM_SYSCOMMAND – при выборе пункта системного меню5. WM_MENUSELECT – когда курсор перемещается по строке меню.3. Создание меню редактором ресурсовДля создания меню данным образом необходимо воспользоваться редактором Resourse WorkShop..

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5137
Авторов
на СтудИзбе
440
Средний доход
с одного платного файла
Обучение Подробнее