Tutoriais e Programação
Linguagem C - A primeira janela
Dom 23 Nov 2008 01:41 |
- Detalhes
- Categoria: Linguagem C
- Atualização: Segunda, 09 Março 2009 07:20
- Autor: vovó Vicki
- Acessos: 56953
A função DialogFunc
Esta é a central de atendimento particular da nossa janela do tipo caixa de diálogo. É para ela que o sistema envia as mensagens importantes, todas num formato padrão: o manipulador da janela da caixa de diálogo (como se fosse o endereço do destinatário), a mensagem e mais dois parâmetros extras.
Esta função, com o uso de uma declaração switch, faz a triagem das mensagens recebidas. Apenas três tipos de mensagens são tratadas pela nossa central de atendimento, as restantes são ignoradas:
- WM_INITDIALOG: esta mensagem é enviada depois da janela da caixa de diálogo ter sido criada e antes de ser mostrada na tela. É aqui que se pode fazer uma chamada para a função InitializaApp, aquela que eu disse não estar fazendo nada neste programa (retorna apenas o valor 1). Vai ser usada mais pra frente, aguarde.
- WM_COMMAND: esta mensagem é enviada quando um dos controles (ou janela-filha, se quisermos ser mais exatos) quiser notificar a caixa de diálogo de algum evento importante, do tipo um botão foi clicado, um checkbox foi selecionado, o texto de uma caixa de texto foi alterado, etc. Como a caixa de diálogo pode conter vários controles, usamos novamente uma declaração switch para poder tratá-los individualmente.
- WM_CLOSE: esta mensagem é recebida quando o usuário clicar a opção "close" do menu ou quando digitar Ctrl+F4 para fechar a caixa de diálogo.
Observe que, com exceção da mensagem WM_INITDIALOG, todas as outras são respondidas com EndDialog, ou seja, seja lá onde você clicar, a caixa de diálogo será fechada.
Mais uma coisa. Caso não tenha percebido, todas as mensagens são precedidas por WM_, que vem de Windows Message. Como nomes são mais fáceis de memorizar (quando se sabe Inglês ) do que números, os números de identificação das mensagens padrão do Windows foram traduzidos para WM_tipoDeMensagem.
Observações da vó
Muita areia pro seu caminhãozinho? É, só que não tem escapatória: se quisermos brincar de aplicativo Windows, este é o caminho das pedras para chamar o sistema na chincha. E olha que é um aplicativozinho de nada (pus aplicativozinho só para dar uma força pro pessoal da terceira idade )
Brincadeira a parte, a coisa não é tão complicada assim. Resumindo: a função WinMain aciona o sistema operacional para criar uma estrutura do tipo WNDCLASS. Depois colocamos os valores necessários na estrutura, principalmente o procedimento padrão de troca de mensagens (o SAC especializado, lembra?) e registramos tudo no sistemão do Windows. Criamos nossa própria central de mensagens (a função DialogFunc) para poder receber as mensagens do SAC, fazer a triagem e reagirmos apenas às que nos convierem.
Pois é, esta é a forma de fazer com que o sistema operacional trabalhe para nós e, o que é mais importante, da forma como NÓS determinamos. Para tanto é preciso ter uma boa fonte de referência da API do Windows. Aconselho fazer o download do win32.exe nos mesmos endereços indicados para o download do lcc-win32 que, apesar de imenso (são 12,8 Mega), é essencial para nos orientar.
Se você se embananou, não se preocupe. Voltaremos ao assunto mais de uma vez.
Abraço da vó
- << Anterior
- Próximo