[ главная ]   [ рейтинг статей ]   [ справочник радиолюбителя ]   [ новости мира ИТ ]



Ответов: 0
25-02-12 07:01







   Web - программирование
PHP


ASP






XML



CSS

SSI





   Программирование под ОС











   Web - технологии








   Базы Данных









   Графика






Данные




Программирование под ОС / Pascal - 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;




Комментарии

 Ваш комментарий к данному материалу будет интересен нам и нашим читателям!



Последние статьи: Программирование под ОС / Pascal - Delphi /

Работа со шрифтами на Win API
06-06-2010   

Сегодня поговорим о шрифтах, и о том, каким образом работать с ними на Win API. Нам потребуется переменная типа HFONT. Изменить стиль шрифта можно у любого компонента, я покажу это на примере кнопки... подробнее

Кол. просмотров: общее - 3599 сегодня - 1

Работа с таймером на Win API
06-06-2010   

Таймер - вещь в хозяйстве очень полезная. Если некое действие нужно повторять с определенной периодичностью, то таймер, это как раз то, что нужно... подробнее

Кол. просмотров: общее - 3592 сегодня - 1

Работа с мультимедийным таймером на Win API
06-06-2010   

Мы уже знакомы с системным таймером, сегодня познакомимся с мультимедийным, основное отличие которого, более высокая скорость (точность) работы... подробнее

Кол. просмотров: общее - 3690 сегодня - 0

Создание CheckBoxов средствами Win API
06-06-2010   

Сегодня наша программа научится работать с CheckBoxами. CheckBox можно представить как флаг, который можно установить или сбросить, и в зависимости от его состояния выполнять определенные действия... подробнее

Кол. просмотров: общее - 3822 сегодня - 1

Создание группы RadioButton средствами Win API
06-06-2010   

В прошлый раз мы сделали несколько радио-кнопок, которые автоматически объединялись в одну группу. Сейчас рассмотрим, как создавать несколько независимых групп радио-кнопок... подробнее

Кол. просмотров: общее - 3652 сегодня - 1



  WWW.COMPROG.RU - 2009-2012 | Designed and Powered by Zaipov Renat | Projects