adiciona ao menu de contexto de destaque, Novamente? [fechadas]

0

Esta pergunta 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 do mouse em uma seleção no bloco de notas, um navegador, qualquer coisa que esteja construindo um menu de contexto. Como um aplicativo faz isso? Por que não posso adicionar a ele? Como você adiciona ao menu de contexto do hightlight? Nenhuma resposta é melhor que uma não-resposta.

    
por mrmsbarnes 20.08.2012 / 13:44

1 resposta

1

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.

    
por 20.08.2012 / 14:27

Tags