ПРОГРАММИРОВАНИЕ! СОЗДАНИЕ САЙТОВ И ИХ ОПТИМИЗАЦИЯ
Главная » Статьи » Программирование » Delphi |
Работа с меню в Delphi Здесь рассмотрены несколько основных функций для работы с меню. Но так как Delphi предоставляет достаточно удобные средства для работы с меню, здесь не рассматриваются вопросы о РЕАКЦИИ программы на выбор пунктов ГЛАВНОГО меню, зато рассматривается обработка сообщений от меню системного. Дескриптор меню HMENU - это уникальный номер меню в системе. В файле windows.pas тип HMENU определен так: type HMENU = Integer; Функция GetMenu Синтаксис function GetMenu(hWnd: HWND): HMENU; Возвращает дескриптор меню или нуль (если у окна нет меню). hWnd - дескриптор того окна, дескриптор меню которого вы хотите получить. Функция SetMenu Синтаксис function SetMenu(hWnd: HWND; hMenu: HMENU): BOOL; Устанавливает ГЛАВНОЕ новое меню у заданного окна. Возвращает True, если всё прошло удачно. После выполнения этой функции строку меню нужно перерисовать функцией DrawMenuBar hWnd - Дескриптор окна. hMenu - Дескриптор меню, которым вы хотите заменить меню окна, заданного описателем hWnd. Функция DrawMenuBar Синтаксис function DrawMenuBar(hWnd: HWND): BOOL; Перерисовывает строку меню окна. hWnd - Дескриптор окна. Функция GetSystemMenu Синтаксис function GetSystemMenu(hWnd: HWND; bRevert: BOOL): HMENU; Возвращает дескриптор системного меню окна. hWnd - Дескриптор окна, системное меню которого необходимо прлучить. bRevert - Булевское значение: True - Будет восстановлен первоначальный вид системного меню. Все изменения полученного дескриптора меню будут проигнорированы. Применяется для отмены изменений в системном меню. False - Изменяя полученный дескриптор, можно менять само системное меню. Функция CreateMenu Синтаксис function CreateMenu: HMENU; Создает новый пустой дескриптор меню. Функция CreatePopupMenu Синтаксис function CreatePopupMenu: HMENU; Создает дескриптор всплывающего меню. Обратите внимание: ВСПЛЫВАЮЩЕЕ [POPUP] МЕНЮ В ПОНИМАНИИ WINDOWS И Delphi РАЗНЫЕ ВЕЩИ. В Windows popup меню - это меню которое связано с другим пунктом меню (который отмечается треугольничком справа от текста пункта) и появляется только в то случае, когда пользователь выбрал этот самый пункт с треугльничком (другими словами popup меню в Windows - это подменю). В Delphi popup меню - Это меню, которое может "Всплывать" в любой точке экрана Функция DestroyMenu Синтаксис function DestroyMenu(hMenu: HMENU): BOOL; Уничтожает дескриптор меню. hMenu - Уничтожаемого дескриптора меню. Функция GetMenuItemCount Синтаксис function GetMenuItemCount(hMenu: HMENU): Integer; Возвращает количиство пунктов меню hMenu. Функция CheckMenuItem Синтаксис function CheckMenuItem(hMenu: HMENU; uIDCheckItem, uCheck: UINT): DWORD; Помечает пункт меню или снимает пометку (пометка в виде галочки). hMenu - дескриптор меню. uIDCheckItem - ID пункта меню. uCheck - Комбинация флагов mf_checked, mf_unchecked, mf_bycommand, mf_byposition. Функция CheckMenuRadioItem Синтаксис function CheckMenuRadioItem(hMenu: HMENU; First, Last, Check, Flags: UINT): BOOL; Помечает или снимает пометку пункта меню из группы (Пометка в виде точки, действует как переключатель). hMenu - дескриптор меню. First - Номер первого пункта меню из группы. Last - Номер последнего пункта меню из группы. Check - Номер помечаемого элемента (при этом пометка у остальных пунктов из группы пометка сбрасывается). Flags - Должен быть - mf_byposition. Функция EnableMenuItem Синтаксис function EnableMenuItem(hMenu: HMENU; uIDEnableItem, uEnable: UINT): BOOL; Делает пункт меню доступным или недоступным. hMenu - дескриптор меню. uIDEnableItem - ID пункта меню. uEnable - Комбинация флагов mf_byposition, mf_bycommand, mf_grayed, mf_enabled. Функция Menu Синтаксис function Menu(hMenu: HMENU; uPosition, uFlags, uIDNewItem: UINT; lpNewItem: PChar): BOOL; Вствляет пункт меню в определенную позицию в меню. hMenu - дескриптор меню uPosition - Позиция нового пункта uFlags - Набор флагов, определяющий каким будет вставлен в меню новый пункт(доступным, недоступным, помеченным и т.д.) uIDNewItem - ID нового пункта меню. lpNewItem - Текст пункта меню. Функция AppendMenu Синтаксис function AppendMenu(hMenu: HMENU; uFlags, uIDNewItem: UINT; lpNewItem: PChar): BOOL; Все параметры как в функции Menu. Список всех MF_ констант MF_ = 0; MF_CHANGE = $80; MF_APPEND = $100; MF_DELETE = $200; MF_REMOVE = $1000; MF_BYCOMMAND = 0; MF_BYPOSITION = $400; MF_SEPARATOR = $800 MF_ENABLED = 0; MF_GRAYED = 1; MF_DISABLED = 2; MF_UNCHECKED = 0; MF_CHECKED = 8; MF_USECHECKBITMAPS = $200; MF_STRING = 0; MF_BITMAP = 4; MF_OWNERDRAW = $100; MF_POPUP = $10; MF_MENUBARBREAK = $20; MF_MENUBREAK = $40; MF_UNHILITE = 0; MF_HILITE = $80; MF_DEFAULT = $1000; MF_SYSMENU = $2000; MF_HELP = $4000; MF_RIGHTJUSTIFY = $4000; | |
Просмотров: 2147 | Рейтинг: 0.0/0 |
Всего комментариев: 0 | |