Menus e aceleradores

Usando um acelerador é o mesmo que escolher um item de menu: ambas as ações que o sistema enviar um WM_COMMAND ou WM_SYSCOMMAND mensagem para o procedimento de janela correspondente. A mensagem WM_COMMAND inclui um identificador que o procedimento janela examina para determinar a origem da mensagem. Se um acelerador gerou a mensagem WM_COMMAND, o identificador é o do acelerador. Da mesma forma, se um item de menu gerado a mensagem WM_COMMAND, o identificador é que o item de menu. Porque um accelerator fornece um atalho para a escolha de um comando de um menu, um aplicativo geralmente atribui o mesmo identificador para o acelerador e o item de menu correspondente.

Um aplicativo processa uma mensagem de WM_COMMAND accelerator exatamente da mesma forma como a mensagem WM_COMMAND de item de menu correspondente. No entanto, a mensagem WM_COMMAND contém um sinalizador que especifica se a mensagem foi originada de um acelerador ou um item de menu, no caso de aceleradores devem ser tratados de forma diferente de seus itens de menu correspondentes. A mensagem WM_SYSCOMMAND não contém esta bandeira.

O identificador determina se um acelerador gera uma mensagem de WM_COMMAND ou WM_SYSCOMMAND. Se o identificador tem o mesmo valor que um item de menu no menu do sistema, o acelerador gera uma mensagem WM_SYSCOMMAND. Caso contrário, o acelerador gera uma mensagem WM_COMMAND.

Se um acelerador tem o mesmo identificador como um item de menu e o item de menu é cinza ou desabilitado, o acelerador está desabilitado e não gera uma mensagem de WM_COMMAND ou WM_SYSCOMMAND. Além disso, um acelerador não gera uma mensagem de comando se a janela correspondente é minimizada.

Quando o usuário utiliza um acelerador que corresponde a um item de menu, o procedimento janela recebe as mensagens WM_INITMENU e WM_INITMENUPOPUP como se o usuário tinha selecionado o item de menu. Para obter informações sobre como processar essas mensagens, consulte Menus.

Um acelerador que corresponde a um item de menu deve ser incluído no texto do item de menu.