Resposta curta: Se você adicionou um novo item de menu, o programa não saberia o que fazer quando o item foi clicado. Você realmente precisa alterar o código do programa para fazer novos itens de menu alguma coisa. É por isso que "cabe a cada aplicação" é uma resposta válida.
O Windows, como a maioria dos outros sistemas operacionais, fornece um conjunto de funções para construir programas GUI - alguns fazem parte do sistema ("criar uma janela"), outros são principalmente por conveniência ("desenhe um botão que pode ser clicado" ).
A maioria dos programas exibe seus menus (normal e contexto) usando essas funções - eles basicamente fornecem ao Windows uma lista de itens e solicitam que ele seja exibido na tela na forma de um menu, e para informar o programa sobre o que você escolhido.
O Windows não se importa de onde vem a lista de itens. Alguns menus são gerados pelo próprio programa (como a lista "Arquivos recentes"); você não pode alterá-las sem realmente reescrever a parte do programa que cria a lista de arquivos recente. Outros menus, como "Arquivo" ou "Editar" ou "Ajuda" no Notepad, são criados a partir de um "recurso" armazenado dentro do próprio arquivo .exe
, e existem ferramentas para editar tais recursos (por exemplo, reorganizar itens de menu). ou para mudar o ícone do programa).
Mas se você usasse essa ferramenta para adicionar novos itens de menu, eles não funcionariam, porque o programa não saberia o que fazer . Não há mágica associada a cada item de menu, apenas um único número, um "ID de comando". Por exemplo, "Copiar", sendo comum em muitos programas, tem a ID de comando 12 ("IDM_COPY") atribuída, e algo específico para um único programa (como "Novo Jogo") pode ter 1234 ou 2468 ou outra coisa. Quando você abre um menu de contexto e clica em "Copiar", o Windows diz ao Bloco de Notas apenas que "o ID de comando 12 foi escolhido" e cabe ao Bloco de Notas colocar o texto selecionado na área de transferência sempre que isso acontecer.
- Recortar → ID 11 → O Bloco de notas coloca o texto na área de transferência e o exclui do documento
- Copiar → ID 12 → O bloco de notas coloca o texto na área de transferência
- Colar → ID 13 → O bloco de notas obtém texto da área de transferência e o insere no documento
- Sing → ID 12 → Bloco de notas coloca texto na área de transferência
- Copiar novamente → ID 3456 → O Bloco de Notas não faz nada, pois não tem ideia do que o ID 3456 deve significar
Nota: O acima é um pouco simplificado. O menu de contexto no bloco de notas, na verdade, é implementado pelo controle "texto editável", que faz parte das funções de utilitário acima mencionadas fornecidas pelo Windows. O menu principal, no entanto, é totalmente parte do Bloco de Notas.
Nota: Alguns programas, geralmente aqueles que podem ser esfolados ou temáticos, na verdade desenham vários controles sozinhos - o que não é particularmente difícil, já que um menu pop-up é apenas uma janela sem barra de título. Embora eu não tenha visto o código desses programas, não acho que os detalhes mudem muito.