Akceleratory i menu

Za pomocą akceleratora jest taki sam jak wybieranie elementu menu: zarówno akcje powodują system, aby wysłać wiadomość WM_COMMAND lub WM_SYSCOMMAND do odpowiedniej procedury okna. Wiadomość WM_COMMAND zawiera identyfikator, który analizuje procedurę okna do ustalenia źródła wiadomości. Jeśli akcelerator wygenerowany komunikat WM_COMMAND, identyfikator jest przez przyspiesznik. Podobnie jeśli element menu wygenerowany komunikat WM_COMMAND, identyfikator jest z elementu menu. Ponieważ akcelerator przewiduje wybierając polecenie z menu skrótów, aplikacja zazwyczaj przypisuje tym samym identyfikatorze przyspiesznik i odpowiedniego elementu menu.

Aplikacja przetwarza wiadomość WM_COMMAND skrótu w dokładnie taki sam sposób jak odpowiedni komunikat WM_COMMAND elementu menu. Jednak wiadomości WM_COMMAND zawiera flagi, które określa, czy wiadomość pochodzi od skrótu lub element menu w przypadku akceleratorów musi być przetwarzane inaczej niż ich odpowiednie elementy menu. Wiadomość WM_SYSCOMMAND nie zawiera tej flagi.

Identyfikator określa, czy akcelerator generuje komunikat WM_COMMAND lub WM_SYSCOMMAND. Jeśli identyfikator ma taką samą wartość jak element menu w menu systemowe, przyspiesznik generuje komunikat WM_SYSCOMMAND. W przeciwnym razie przyspiesznik generuje komunikat WM_COMMAND.

Jeśli akcelerator ma ten sam identyfikator jako element menu i elementu menu jest wyszarzone lub wyłączony, przyspiesznik jest wyłączone i nie generują wiadomości WM_COMMAND lub WM_SYSCOMMAND. Również akcelerator nie generuje Wiadomość polecenie Jeśli odpowiedniego okna są zminimalizowane.

Gdy użytkownik używa skrótu, który odpowiada pozycji menu, procedurę okna odbiera wiadomości WM_INITMENU i WM_INITMENUPOPUP , jakby użytkownik miał zaznaczony element menu. Aby uzyskać informacje dotyczące sposobu przetwarzania tych wiadomości, zobacz menu.

Akcelerator odpowiadający element menu powinny być uwzględnione w tekst elementu menu.