Среда, 18.06.2025, 14:21
Приветствую Вас Гость | RSS
Меню сайта
fff
  • Индексация
  • Девочки
    Форма входа
    Категории раздела
    Теория алгоритмов [3]
    Теория алгоритмов
    Code Snippets [1]
    Code Snippets
    Все о PHP [20]
    Все о PHP
    Visual C++ [13]
    Visual C++
    WIN32 API [7]
    WIN32 API
    Delphi [72]
    Delphi
    ASP [2]
    ASP
    Java [67]
    Java
    VBScript [6]
    VBScript
    CGI [2]
    CGI
    VRML [2]
    VRML
    PERL [9]
    PERL
    HTML [4]
    HTML
    XML [10]
    XML
    Архив записей

    Статьи по Оптимизации

    ПРОГРАММИРОВАНИЕ! СОЗДАНИЕ САЙТОВ И ИХ ОПТИМИЗАЦИЯ

    Главная » Статьи » Программирование » Delphi

    Работа с меню в 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;

    Категория: Delphi | Добавил: Merlin (07.12.2009)
    Просмотров: 2147 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Имя *:
    Email *:
    Код *: