Робота з меню в delphi - delphi

Тут розглянуті кілька основних функцій для роботи з меню. Але так як Delphi надає досить зручні засоби для роботи з меню, тут не розглядаються питання про реакцію програми на вибір пунктів головного меню, зате розглядається обробка повідомлень від меню системного.

Дескриптор меню HMENU - це унікальний номер меню в системі. У файлі windows.pas тип HMENU визначено так:

type HMENU = Integer;

Синтаксис function GetMenu (hWnd: HWND): HMENU;

Повертає дескриптор меню або нуль (якщо у вікна немає меню).

hWnd - дескриптор того вікна, дескриптор меню якого ви хочете отримати.

Синтаксис function SetMenu (hWnd: HWND; hMenu: HMENU): BOOL;

Встановлює ГОЛОВНЕ нове меню у заданого вікна. Повертає True, якщо все пройшло вдало. Після виконання цієї функції рядок меню потрібно перемалювати функцією DrawMenuBar

hWnd - Дескриптор вікна.
hMenu - Дескриптор меню, яким ви хочете замінити меню вікна, заданого описателем hWnd.

Синтаксис function DrawMenuBar (hWnd: HWND): BOOL;

Перемальовує рядок меню вікна.

hWnd - Дескриптор вікна.

Синтаксис function GetSystemMenu (hWnd: HWND; bRevert: BOOL): HMENU;

Повертає дескриптор системного меню вікна.

hWnd - Дескриптор вікна, системне меню якого необхідно отримати.

bRevert - булевскому значення:

True - Буде відновлено первісний вигляд системного меню. Всі зміни отриманого дескриптора меню будуть проігноровані. Застосовується для скасування змін в системному меню.

False - Змінюючи отриманий дескриптор, можна змінювати саме системне меню.

Синтаксис function CreateMenu: HMENU;

Створює новий порожній дескриптор меню.

Синтаксис function CreatePopupMenu: HMENU;

Створює дескриптор спливаючого меню.

Спливає [POPUP] МЕНЮ В РОЗУМІННЯ WINDOWS І Delphi РІЗНІ РЕЧІ.

У Windows popup меню - це меню яке пов'язане з іншим пунктом меню (який відзначається трикутником праворуч від тексту пункту) і з'являється тільки в тому разі, коли користувач вибрав цей самий пункт з трикутником (іншими словами popup меню в Windows - це підміню).

У Delphi popup меню - Це меню, яке може "спливати" в будь-якій точці екрану

Синтаксис function DestroyMenu (hMenu: HMENU): BOOL;

Знищує дескриптор меню.

hMenu - знищувати дескриптора меню.

Синтаксис function GetMenuItemCount (hMenu: HMENU): Integer;

Повертає кількість пунктів меню hMenu.

Синтаксис function CheckMenuItem (hMenu: HMENU; uIDCheckItem, uCheck: UINT): DWORD;

Позначає пункт меню або знімає позначку (позначка у вигляді галочки).

hMenu - дескриптор меню.

uIDCheckItem - ID пункту меню.

uCheck - Комбінація прапорів mf_checked, mf_unchecked, mf_bycommand, mf_byposition.

Синтаксис function CheckMenuRadioItem (hMenu: HMENU; First, Last, Check, Flags: UINT): BOOL;

Позначає або знімає позначку пункту меню з групи (Позначка у вигляді точки, діє як перемикач).

hMenu - дескриптор меню.

First - Номер першого пункту меню з групи.

Last - Номер останнього пункту меню з групи.

Check - Номер що позначається елемента (при цьому позначка у інших пунктів з групи позначка скидається).

Flags - Повинен бути - mf_byposition.

Синтаксис function EnableMenuItem (hMenu: HMENU; uIDEnableItem, uEnable: UINT): BOOL;

Робить пункт меню доступним або недоступним.

hMenu - дескриптор меню.

uIDEnableItem - ID пункту меню.

uEnable - Комбінація прапорів mf_byposition, mf_bycommand, mf_grayed, mf_enabled.

Синтаксис function Menu (hMenu: HMENU; uPosition, uFlags, uIDNewItem: UINT; lpNewItem: PChar): BOOL;

Вставляє пункт меню в певну позицію в меню.

hMenu - дескриптор меню

uPosition - Позиція нового пункту

uFlags - Набір прапорів, що визначає яким буде вставлений в меню новий пункт (доступним, недоступним, позначеним і т.д.)

uIDNewItem - ID нового пункту меню.

lpNewItem - Текст пункту меню.

Синтаксис function AppendMenu (hMenu: HMENU; uFlags, uIDNewItem: UINT; lpNewItem: PChar): BOOL;

Всі параметри як в функції Menu.

Список всіх MF_ констант

Схожі статті