Um procedimento caixa de diálogo é semelhante a um procedimento de janela em que o sistema envia mensagens para o procedimento quando ele tem informações a dar ou tarefas a realizar. Ao contrário de um procedimento de janela, um procedimento de caixa de diálogo nunca chama o DefWindowProc função. Em vez disso, ele retorna o valor Booleano TRUE se ele processa uma mensagem ou FALSE se ele não.
Cada procedimento de caixa de diálogo possui o seguinte formulário:
BOOL APIENTRY DlgProc (hwndDlg, mensagem, wParam, lParam) HWND hwndDlg;
Mensagem de UINT;
WPARAM wParam;
LPARAM lParam;
{switch (mensagem) {/ / mensagem de lugar casos aqui.
padrão: retorno FALSE;
}
}
Os parâmetros de procedimento têm a mesma finalidade como em um procedimento de janela, com o hwndDlg parâmetro recebe o identificador de janela da caixa de diálogo.
A maioria dos procedimentos de caixa de diálogo processam a mensagem WM_INITDIALOG e as mensagens WM_COMMAND enviadas pelos controles, mas alguns se quaisquer outras mensagens. Se um procedimento caixa de diálogo não processa uma mensagem, ela deve retornar FALSE para direcionar o sistema para processar as mensagens internamente. A única exceção a essa regra é a mensagem WM_INITDIALOG. O procedimento de caixa de diálogo deve retornar TRUE para direcionar o sistema para processar mais a mensagem WM_INITDIALOG. Em qualquer caso, o procedimento não deve chamar DefWindowProc.