Esta pergunta já foi feita antes, mas a não resposta é "Bem, cabe a cada aplicativo oferecer suporte a diferentes opções". Ainda assim, quando você clica com o botão direito em uma seleção no bloco de notas, em um navegador, seja lá o que for, algo está construindo um menu de contexto. Como um aplicativo faz isso? Por que não posso adicionar nada? Como você adiciona ao menu de contexto de destaque? Nenhuma resposta é melhor do que uma não resposta.
Responder1
Resposta curta: se você adicionou um novo item de menu,o programa não saberia o que fazer quando o item fosse clicado.Na verdade, você precisa alterar o código do programa para que os novos itens do menu façam alguma coisa. É por isso que “Depende de cada aplicação” é uma resposta válida.
O Windows, como a maioria dos outros sistemas operacionais, fornece um conjunto de funções para a construção de programas GUI – algumas fazem parte do sistema ("criar uma janela"), outras são principalmente por conveniência ("desenhar um botão que possa ser clicado").
A maioria dos programas exibe seus menus (normal e de contexto) usando essas funções – eles basicamente fornecem ao Windows uma lista de itens e pedem que ela seja exibida na tela na forma de um menu e informe ao programa o que você escolheu.
O Windows não se importa particularmente 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á-los sem realmente reescrever a parte do programa que cria a lista de arquivos recentes. Outros menus, como o menu "Arquivo" ou "Editar" ou "Ajuda" no Bloco de Notas, são criados a partir de um "recurso" armazenado no .exe
próprio arquivo, e existem ferramentas para editar tais recursos (por exemplo, reorganizar itens de menu ou alterar o ícone do programa).
Mas se você usasse essa ferramenta para adicionar novos itens de menu, eles não funcionariam, porque o programanão saberia o que fazer. Não há mágica associada a cada item do menu, apenas um único número, um “ID de comando”. Por exemplo, "Copiar", sendo comum em muitos programas, tem o ID de comando 12 ("IDM_COPY") atribuído, e algo específico para um único programa (como "Novo Jogo") pode ter 1234 ou 2468 ou algo mais. Quando você abre um menu de contexto e clica em "Copiar", o Windows informa 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.
- Cortar → ID 11 → Bloco de notas coloca o texto na área de transferência e depois o exclui do documento
- Copiar → ID 12 → Bloco de notas coloca texto na área de transferência
- Colar → ID 13 → O Bloco de Notas obtém o texto da área de transferência e o insere no documento
- Cantar → 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 deveria significar
Nota lateral: o texto acima é um pouco simplificado. O menu de contexto do Bloco de Notas é, na verdade, implementado pelo controle “texto editável”, que faz parte das funções utilitárias mencionadas anteriormente fornecidas pelo Windows. O menu principal, entretanto, faz parte inteiramente do Bloco de Notas.
Nota lateral: alguns programas, geralmente aqueles que podem ter skin ou tema, na verdade desenham vários controles por si mesmos – 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 mudariam muito.