Criando uma caixa de diálogo Modal

Você criar uma caixa de diálogo modal usando a DialogBox função. Você deve especificar o identificador ou nome de um recurso de modelo de caixa de diálogo e o endereço do procedimento de caixa de diálogo. A DialogBox função carrega o modelo, exibe a caixa de diálogo e processa todas as entrada do usuário até que o usuário fecha a caixa de diálogo.

No exemplo a seguir, o aplicativo exibe uma caixa de diálogo modal quando o usuário escolhe um comando Excluir Item de um menu de aplicativo. A caixa de diálogo contém um Controlarar de editar (no qual o usuário insere o nome de um item) e OK e cancelar botões. Os identificadores de Controlarar para esses controles são ID_ITEMNAME, IDOK e IDCANCEL, respectivamente.

A primeira parte do exemplo consiste de instruções que criar a caixa de diálogo modal. Estas declarações, no procedimento de janela para a janela principal do aplicativo, criam a caixa de diálogo quando o sistema recebe uma WM_COMMAND mensagem com o identificador de comando IDM_DELETEITEM. A segunda parte do exemplo é o procedimento de caixa de diálogo, que recupera o conteúdo do Controlarar de editar e fecha a caixa de diálogo ao receber uma mensagem WM_COMMAND.

As instruções a seguir criam a caixa de diálogo modal. O modelo de caixa de diálogo é um recurso no arquivo executável do aplicativo e tem o identificador de recurso DLG_DELETEITEM:

casos WM_COMMAND: alternar (LOWORD(wParam)) {case IDM_DELETEITEM: se (DialogBox (hinst, MAKEINTRESOURCE(DLG_DELETEITEM), hwnd, DeleteItemProc (DLGPROC)) = = IDOK) {
 
                    / / Concluir o comando; szItemName / / contém o nome do item para / / delete. 

                }
 
                else 
                {

/ / Cancelar o comando. 

                } 
                break; 
        } retornar 0 L 

 

Neste exemplo, o aplicativo identifica sua janela principal como a janela de proprietário para a caixa de diálogo. Quando inicialmente, o sistema exibe a caixa de diálogo, sua posição é relativo para o canto superior esquerdo da área cliente da janela de proprietário. O aplicativo usa o valor de retorno de DialogBox para determinar se deseja continuar com o comando ou cancelá-lo. As instruções a seguir definem o procedimento de caixa de diálogo.

char szItemName [80]; / / recebe o nome do item para excluir. 
 
Chamada de retorno BOOL DeleteItemProc (hwndDlg, mensagem, wParam, lParam) HWND hwndDlg; 
Mensagem de UINT; 
WPARAM wParam; 
LPARAM lParam; 
{switch (mensagem) {case WM_COMMAND: alternar (LOWORD(wParam)) {case IDOK: if (!GetDlgItemText (hwndDlg, ID_ITEMNAME, szItemName, 80)) * szItemName = 0; 
 
                    / / Cair através de. 
 
                caso IDCANCEL: EndDialog (hwndDlg, wParam); 
                    retornar TRUE; 
            }} return FALSE; 
} 

 

Neste exemplo, o procedimento usa GetDlgItemText para recuperar o texto atual do Controlarar de Editarar identificado por ID_ITEMNAME. O procedimento, em seguida, chama o EndDialog função para definir o valor de retorno da caixa de diálogo como IDOK ou IDCANCEL, dependendo da mensagem recebida e para começar o processo de fechar a caixa de diálogo. Os identificadores de IDOK e IDCANCEL correspondem aos botões OK e Cancelar. Após o procedimento chama EndDialog, o sistema envia mensagens adicionais para o procedimento para destruir a caixa de diálogo e retorna o valor de retorno da caixa de diálogo voltar à função que criou a caixa de diálogo.

Index