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 //разделительная черта в меню