Menu Documentation - TonSharp/WAPITIS GitHub Wiki

Introduction

Здесь находится информация о процессе создания меню, включая вложенные и контекстные, в WAPITIS.

Быстрый доступ:


MenuItem

Данная структура описывает один элемент меню. Она включает в себя отображаемую строку и стиль элемента.

struct MenuItem
{
  wstring Name;
  DWORD Style;
};

Menu

Данный класс описывает целое меню, не зависимо от того, каким оно является (внешним, вложенным, контекстным и т.д.).

Constructor

Конструктор по умолчанию. Принимает 3 аргумента - отображаемая строка (название пункта меню), является ли текущее меню всплывающим и идентификатор меню (Примечание: Идентификатор должен быть уникальным целочисленным числом больше 1000, а также не пересекаться с идентификаторами UI элементов.

Menu(wstring name, bool isPopup, int ID)

Create

Метод создания обычного меню (Примечание: Ручной вызов данного метода не требуется, его вызывает конструктор).

void Create()

CreatePopup

Метод создания всплывающего меню (Примечание: Ручной вызов данного метода не требуется, его вызывает конструктор).

void CreatePopup()

AddSubMenu

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

void AddSubMenu(Menu subMenu)

Перегрузка: В качестве параметров передается вектор MenuItem, идентификатор первого элемента, а также название меню.

void AddSubMenu(vector<MenuItem> items, int startID, wstring menuName)

AddItems

Метод добавляет пункты меню к уже имеющимся. В качестве параметров принимает вектор MenuItem а также идентификатор перового пункта.

void AddItems(vector<MenuItem> items, int startID)

Register

Метод привязывает меню к переданному в качестве аргумента окну.

void Register(HWND wnd)

Track

Метод отображает контекстное меню для окна и возвращает идентификатор выбранного пункта. Должен вызываться только в функции обработки сообщений.

DWORD Track(HWND wnd, CallbackArgs args)

GetIDByMenuIndex

Метод возвращает идентификатор меню по его индексу. Первый аргумент - индекс группы, второй - индекс элемента в группе.

int GetIDByMenuIndex(int subMenuIndex, int itemIndex)

IsClicked

Метод проверки нажатия определенного пункта меню (или контекстного меню). В качестве параметров принимает аргументы функции обработки сообщений, а также позицию элемента меню. Возвращает true, если элемент был нажат, иначе - false.

bool IsClicked(CallbackArgs args, int subMenuIndex, int itemIndex)

Get

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

HMENU Get()

GetPointer

Метод возвращает ссылку на дескриптор меню.

HMENU* GetPointer()

GetName

Метод возвращает название меню.

wstring GetName()

GetID

Метод возвращает идентификатор меню.

int GetID()

Items Styles

MF_STRING    //стандартный элемент меню
MF_SEPARATOR //разделительная черта в меню
⚠️ **GitHub.com Fallback** ⚠️