Acceleratoare și meniuri

Folosind un accelerator este același ca alegerea unui element de meniu: ambele acțiuni cauza sistemul pentru a trimite un mesaj WM_COMMAND sau WM_SYSCOMMAND pentru procedura fereastra corespunzătoare. Mesajul WM_COMMAND include un identificator care examinează procedura ferestrei pentru a determina sursa mesajului. Dacă un accelerator generat mesajul WM_COMMAND, identificatorul este de accelerație. În mod similar, dacă un element de meniu generat mesajul WM_COMMAND, identificatorul este elementului de meniu. Deoarece un accelerator oferă o comandă rapidă pentru a alege o comandă dintr-un meniu, o cerere de obicei atribuie același identificator de accelerație și elementul de meniu corespunzător.

O cerere procesează un accelerator WM_COMMAND mesaj exact la fel ca mesaj de WM_COMMAND a element de meniu corespunzătoare. Cu toate acestea, mesajul WM_COMMAND cuprinde un simbol care specifică dacă mesajul provine de la un accelerator sau un element de meniu, în cazul în acceleratoarele trebuie să fie prelucrate în mod diferit la elementele meniul lor corespunzătoare. WM_SYSCOMMAND mesajul nu conține acest steag.

Identificatorul determină dacă un accelerator generează un mesaj de WM_COMMAND sau WM_SYSCOMMAND. În cazul în care identificatorul are aceeași valoare ca un element de meniu în meniul sistemului de, accelerator generează un mesaj de WM_SYSCOMMAND. În caz contrar, accelerator generează un mesaj de WM_COMMAND.

Dacă un accelerator are același identificator ca un element de meniu și elementul de meniu este gri sau dezactivat, acceleratorul este dezactivat și nu generează un mesaj WM_COMMAND sau WM_SYSCOMMAND. De asemenea, un accelerator nu generează un mesaj de comandă dacă fereastra corespunzătoare este minimizat.

Atunci când utilizatorul folosește un accelerator care corespunde unui element de meniu, procedura fereastra primește mesajele WM_INITMENU și WM_INITMENUPOPUP , ca ?i cum utilizatorul a selectat elementul de meniu. Pentru informații despre cum să prelucreze aceste mesaje, consultați meniuri.

Un accelerator care corespunde unui element de meniu ar trebui incluse în textul elementului de meniu.