Handling Notification Messages
9/9/2008
Cada controle janela responde à entrada usuário ou altera para o controle enviando um mensagem notificação Para sua janela pai. Uma mensagem notificação é uma mensagem WM_COMMAND que inclui um identificador controle e um codificar notificação que identifica a natureza do evento. Um aplicativo precisa coletar essas notificação mensagens e responder a elas.
O seguinte exemplo de código mostra um método de interceptação uma mensagem WM_COMMAND.
BOOL CALLBACK AboutDialogProc (
HWND hwndDlg, // Handle to the dialog box
UINT uMsg, // Message
WPARAM wParam, // First message parameter
LPARAM lParam) // Second message parameter
{
switch (uMsg)
{
case WM_INITDIALOG:
return TRUE;
case WM_COMMAND:
switch (LOWORD (wParam))
{
case IDOK:
EndDialog (hwndDlg, IDOK);
return TRUE;
case IDCANCEL:
EndDialog (hwndDlg, IDCANCEL);
return TRUE;
}
break;
}
return FALSE;
}
Alguns controles janela recebem, bem como geram mensagens. Geralmente, um procedimento janela envia uma mensagem para um controle, direcionando-lo para executar uma tarefa. O controle processa a mensagem e executa a ação solicitada. Windows Embedded CE tem várias mensagens predefinidas, como WM_GETTEXT e WM_GETDLGCODE, que envia para controles. Essas mensagens geralmente corresponder a janela-gerenciamento funções que realizar ações no Windows. O procedimento janela para um controle Application-defined processa qualquer mensagem controle predefinidos que afeta a operação do controle. A seguinte tabela mostra essas mensagens.
Mensagem | Recomendação |
---|---|
WM_GETDLGCODE |
Processar se o controle usa as teclas ENTER, Esc, TAB ou SETA. O IsDialogMessage função envia esta mensagem para controles em uma caixa diálogo para determinar se processo a teclas ou transmiti-los para o controle. |
WM_GETFONT |
Processo se a mensagem WM_SETFONT também é processada. |
WM_GETTEXT |
Se o texto controle não for o mesmo que o título que é especificado pelo processo de CreateWindowEx função. |
WM_GETTEXTLENGTH |
Se o texto controle não for o mesmo que o título que é especificado pelo processo de CreateWindowEx função. |
WM_KILLFOCUS |
Processar se o controle exibe um acento circunflexo, um retângulo de foco ou outro item para indicar que ela tem o foco de entrada. |
WM_SETFONT |
Processar se o controle exibe texto. Windows Embedded CE envia esta mensagem quando Windows Embedded CE cria um caixa de diálogo que possui o estilo DS_SETFONT. |
WM_SETFOCUS |
Processar se o controle exibe um acento circunflexo, um retângulo de foco ou outro item para indicar que ela tem o foco de entrada. |
WM_SETTEXT |
Se o texto controle não for o mesmo que o título que é especificado pelo processo de CreateWindowEx função. |
Você também pode enviar mensagens para um controle, chamado de SendMessage função. Um controle que chama SendMessage Para receber mensagens é o controle botão.