Добавяне на команда за меню на прозореца система, глава 1 на прозореца, четат онлайн без регистрация

Добавяне на команда за меню на прозореца система

Имайте предвид, падащото меню, когато кликнете върху иконата на прозореца. В тази система елементи от менюто където обикновено се намират, извършване на стандартни операции на прозореца, като например затваряне, минимизиране, максимизиране и др. За достъп до това меню, има специални функции, който дава възможност да го използва за собствените си цели.

За да се покаже прозорец за системното меню дръжка (HMENU), използвайте API-функцията GetSystemMenu, както и да добавите елемента към меню - функцията AppendMenu. Един пример за процедурата, добавят артикули в менюто система, както е показано на Обява 1.26.

процедура TForm1.FormCreate (Sender: TObject);

Var hSysMenu: HMENU;

hSysMenu: = GetSystemMenu (дръжка, False);

AppendMenu (hSysMenu, MF_SEPARATOR, 0, '');

AppendMenu (hSysMenu, MF_STRING, 10001, "увеличение с 20%);

AppendMenu (hSysMenu, MF_STRING, 10002, "Намаляване на 20%);

В резултат на този код на меню Form1 система ще бъде подобен на менюто е показано на фиг. 1.18.

Фиг. 1.18. Персонализирана команда в менюто на системата

Но не е достатъчно да се създаде само командата на менюто - трябва да се предостави за обработка на техен избор. Това се прави с публикации на манипулатор WM_SYSCOMMAND (Обява 1.27).

процедура TForm1.WMSysCommand (VAR Съобщение: TWMSysCommand);

ако Message.CmdType = 10001 тогава

иначе, ако Message.CmdType = 10002 след това

// обработка подразбиране

DefWindowProc (дръжка, Message.Msg, Message.CmdType, 65536 * Message.YPos + Message.XPos);

Имайте предвид, че цифровите стойности се подават на функцията Добавяне-меню се използва за определяне какъв punktmenyu избран. Менюта за работа по стандартния начин, всичко идва от негово командване да бъде обработена. Ето защо, за всички отбори, отговорът на който не е включен в реализираната манипулатор, стандартен манипулатор се нарича (функция DefWindowProc).