A maioria dos aplicativos usar caixas de diálogo para solicitar informações adicionais para os comandos que requer entrada do usuário. Usar uma caixa de diálogo é a única maneira de um aplicativo para recuperar a entrada recomendada. Por exemplo, o comando arquivo abrir requer o nome de um arquivo para abrir, portanto, um aplicativo deve usar uma caixa de diálogo para prompt o usuário para o nome. Em tais casos, o aplicativo cria a caixa de diálogo quando o usuário escolhe o comando e destrói a caixa diálogo imediatamente depois que o usuário fornece as informações.
Muitos aplicativos também usam caixas de diálogo para exibir informações ou opções enquanto o usuário trabalha em outra janela. Por exemplo, aplicativos de processamento de texto geralmente usam uma caixa de diálogo com um comando de pesquisa de texto. Enquanto o aplicativo procura o texto, a caixa de diálogo permanece na tela. O usuário poderá retornar para a caixa de diálogo e procure a mesma palavra novamente; ou o usuário pode alterar a entrada na caixa de diálogo e busca de uma nova palavra. Aplicativos que usar caixas de diálogo desta forma normalmente criar um quando o usuário escolhe um comando e continuam a exibi-lo por enquanto o aplicativo é executado, ou até que o usuário explicitamente fecha a caixa de diálogo.
Para oferecer suporte as diferentes maneiras aplicativos usar caixas de diálogo, a API do Win32 fornece dois tipos de caixa de diálogo: modal e sem janela restrita. Uma caixa de diálogo modal requer que o usuário fornecer informações ou cancelar a caixa de diálogo antes de permitir que o aplicativo continuar. Aplicativos usam caixas de diálogo modal em conjunto com os comandos que exigem informações adicionais antes que eles podem prosseguir. Uma caixa de diálogo sem janela restrita permite que o usuário fornecer informações e retornar para a tarefa anterior sem fechar a caixa de diálogo. Caixas de diálogo modais são mais simples de gerenciar do que de diálogo sem janela restrita caixas porque eles são criados, exerçam as suas funções e são destruídas por chamado uma função única.
Para criar uma caixa de diálogo restrita ou sem janela restrita, uma aplicativo deve fornecer um modelo de caixa de diálogo para descrever o estilo da caixa de diálogo e de conteúdo; o aplicativo também deve fornecer um procedimento caixa de diálogo para executar tarefas. O modelo de caixa de diálogo é um binário descrição da caixa de diálogo e os controles que ele contém. O desenvolvedor pode criar este modelo como um recurso a ser carregado do arquivo executável do aplicativo ou criado na memória enquanto o aplicativo é executado. O procedimento caixa de diálogo é um função callback application-defined que o sistema chama quando ele tem entrada para a caixa de diálogo ou tarefas para a caixa de diálogo Executar. Apesar de um procedimento de caixa de diálogo é semelhante a um procedimento janela, ela não tem as mesmas responsabilidades.
Um aplicativo normalmente cria uma caixa de diálogo usando o DialogBox ou CreateDialog função. DialogBox cria um restrito caixa diálogo; CreateDialog cria uma caixa de diálogo sem janela restrita. Estas duas funções carregar um modelo de caixa de diálogo do arquivo executável do aplicativo e criar uma janela pop-up que correspondam às especificações do modelo. Existem outras funções que criar uma caixa de diálogo usando modelos na memória; eles passam informações adicionais para o procedimento caixa de diálogo como a caixa de diálogo é criada.
Caixas de diálogo geralmente pertencem a uma classe janela predefinida, exclusivo. O sistema usa essa classe de janela e seu correspondente procedimento janela para caixas de diálogo modal e sem janela restrita. Quando a função é chamada, ele cria a janela para a caixa de diálogo, bem como as janelas para os controles na caixa de diálogo, em seguida, envia mensagens selecionadas para o procedimento caixa de diálogo. Enquanto a caixa de diálogo estiver visível, o procedimento janela predefinida gerencia todas as mensagens, processamento algumas mensagens e passando outros para o procedimento caixa de diálogo para que o procedimento pode executar tarefas. Aplicativos não têm acesso direto para a classe de janela predefinidos ou o procedimento de janela, mas eles podem usar o modelo de caixa de diálogo e procedimento caixa de diálogo para modificar o estilo e o comportamento de uma caixa de diálogo.