Adăugarea unei comenzi la un meniu sistem de ferestre, capitolul 1 al ferestrei, citiți on-line, fara inregistrare

Adăugarea unei comenzi într-un meniu sistem de ferestre

Notă meniul drop-down când faceți clic pe pictograma ferestrei. În acest sistem elementele de meniu sunt de obicei prezente, efectua operațiuni standard pe fereastra, cum ar fi de închidere, minimizarea, maximizarea, și altele. Pentru a accesa acest meniu, există caracteristici speciale, care face posibil să-l folosească pentru propriile lor scopuri.

Pentru a obține o fereastră de meniu sistem de mâner (HMENU), utilizați API-funcția GetSystemMenu, și pentru a adăuga elementul la meniu - funcția AppendMenu. Un exemplu al procedurii, se adaugă elemente la sistemul de meniuri, așa cum se arată în Listing 1.26.

Procedura TForm1.FormCreate (Expeditor: TObject);

var hSysMenu: HMENU;

hSysMenu: = GetSystemMenu (mâner, fals);

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

AppendMenu (hSysMenu, MF_STRING, 10001, "Creșterea cu 20%);

AppendMenu (hSysMenu, MF_STRING, 10002, 'Scăderea de 20%');

Ca urmare a acestui cod al meniului de sistem Form1 va fi similar cu meniul prezentat în Fig. 1.18.

Fig. 1.18. comandă personalizată din meniul de sistem

Dar nu este suficient pentru a crea doar o comandă de meniu - aveți nevoie pentru a asigura manipularea alegerea lor. Acest lucru se face în posturile handler WM_SYSCOMMAND (Listing 1.27).

Procedura TForm1.WMSysCommand (var Mesaj: TWMSysCommand);

dacă Message.CmdType = 10001 atunci

altceva dacă Message.CmdType = 10002, atunci

// implicită de procesare

DefWindowProc (mâner, Message.Msg, Message.CmdType, 65536 * Message.YPos + Message.XPos);

Rețineți că valorile numerice trecut la funcția Append-meniu este utilizat pentru a determina ce fel de punktmenyu selectat. Meniurile pentru a lucra într-un mod standard, toate provenind de la comanda lui să fie procesată. Prin urmare, pentru toate echipele, răspunsul la care nu este încorporat în handler realizat, handler implicit se numește (funcția DefWindowProc).