Menu Documentation - TonSharp/WAPITIS GitHub Wiki
Здесь находится информация о процессе создания меню, включая вложенные и контекстные, в WAPITIS.
Быстрый доступ:
Данная структура описывает один элемент меню. Она включает в себя отображаемую строку и стиль элемента.
struct MenuItem
{
wstring Name;
DWORD Style;
};
Данный класс описывает целое меню, не зависимо от того, каким оно является (внешним, вложенным, контекстным и т.д.).
Конструктор по умолчанию. Принимает 3 аргумента - отображаемая строка (название пункта меню), является ли текущее меню всплывающим и идентификатор меню (Примечание: Идентификатор должен быть уникальным целочисленным числом больше 1000, а также не пересекаться с идентификаторами UI элементов.
Menu(wstring name, bool isPopup, int ID)
Метод создания обычного меню (Примечание: Ручной вызов данного метода не требуется, его вызывает конструктор).
void Create()
Метод создания всплывающего меню (Примечание: Ручной вызов данного метода не требуется, его вызывает конструктор).
void CreatePopup()
Метод добавляет подменю для текущего пункта. Если в качестве аргумента передается другое меню, то передаваемое меню обязательно должно быть всплывающим.
void AddSubMenu(Menu subMenu)
Перегрузка: В качестве параметров передается вектор MenuItem
, идентификатор первого элемента, а также название меню.
void AddSubMenu(vector<MenuItem> items, int startID, wstring menuName)
Метод добавляет пункты меню к уже имеющимся. В качестве параметров принимает вектор MenuItem
а также идентификатор перового пункта.
void AddItems(vector<MenuItem> items, int startID)
Метод привязывает меню к переданному в качестве аргумента окну.
void Register(HWND wnd)
Метод отображает контекстное меню для окна и возвращает идентификатор выбранного пункта. Должен вызываться только в функции обработки сообщений.
DWORD Track(HWND wnd, CallbackArgs args)
Метод возвращает идентификатор меню по его индексу. Первый аргумент - индекс группы, второй - индекс элемента в группе.
int GetIDByMenuIndex(int subMenuIndex, int itemIndex)
Метод проверки нажатия определенного пункта меню (или контекстного меню). В качестве параметров принимает аргументы функции обработки сообщений, а также позицию элемента меню. Возвращает true
, если элемент был нажат, иначе - false
.
bool IsClicked(CallbackArgs args, int subMenuIndex, int itemIndex)
Метод возвращает дескриптор меню.
HMENU Get()
Метод возвращает ссылку на дескриптор меню.
HMENU* GetPointer()
Метод возвращает название меню.
wstring GetName()
Метод возвращает идентификатор меню.
int GetID()
MF_STRING //стандартный элемент меню
MF_SEPARATOR //разделительная черта в меню