Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
A Active Template Library (ATL) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.
Esta classe fornece métodos para criar uma caixa de diálogo modal ou sem modos.
Importante
Esta classe e os seus membros não podem ser usados em aplicações que sejam executadas no Windows Runtime.
Sintaxe
template <class T,
class TBase = CWindow>
class ATL_NO_VTABLE CDialogImpl : public CDialogImplBaseT<TBase>
Parâmetros
T
A sua classe, derivada de CDialogImpl.
TBase
A classe base da tua nova classe. A classe base padrão é CWindow.
Membros
Methods
| Função | Description |
|---|---|
| Create | Cria uma caixa de diálogo sem modos. |
| DestroyWindow | Destrói uma caixa de diálogo sem modo. |
| DoModal | Cria uma caixa de diálogo modal. |
| EndDialog | Destrói uma caixa de diálogo modal. |
Métodos CDialogImplBaseT
| Função | Description |
|---|---|
| GetDialogProc | Devolve o procedimento atual da caixa de diálogo. |
| MapDialogRect | Mapeia as unidades de caixa de diálogo do retângulo especificado para unidades de ecrã (píxeis). |
| OnFinalMessage | Liga depois de receber a última mensagem, normalmente WM_NCDESTROY. |
Funções estáticas
| Função | Description |
|---|---|
| DialogProc | Processa as mensagens enviadas para a caixa de diálogo. |
| StartDialogProc | Chamada quando a primeira mensagem é recebida para processar mensagens enviadas para a caixa de diálogo. |
Observações
Podes CDialogImpl criar uma caixa de diálogo modal ou sem modos.
CDialogImpl fornece o procedimento da caixa de diálogo, que utiliza o mapa de mensagens por defeito para direcionar mensagens para os handlers apropriados.
O destruidor ~CWindowImplRoot da classe base assegura que a janela desaparece antes de destruir o objeto.
CDialogImpl deriva de CDialogImplBaseT, que por sua vez deriva de CWindowImplRoot.
Observação
A sua classe deve definir um IDD membro que especifique o ID do recurso do modelo de diálogo. Por exemplo, o ATL Project Wizard adiciona automaticamente a seguinte linha à sua turma:
enum { IDD = IDD_MYDLG };
onde MyDlg é o Nome Curto introduzido na página de Nomes do mago.
| Para mais informações sobre | Veja |
|---|---|
| Criação de controlos | ATL Tutorial |
| Utilização de caixas de diálogo no ATL | Classes de Janelas ATL |
| Feiticeiro do Projeto ATL | Criando um projeto ATL |
| Caixas de diálogo | Caixas de diálogo e tópicos subsequentes no SDK do Windows |
Requerimentos
Cabeçalho: atlwin.h
CDialogImpl::Create
Cria uma caixa de diálogo sem modos.
HWND Create(
HWND hWndParent,
LPARAM dwInitParam = NULL );
HWND Create(
HWND hWndParent,
RECT&,
LPARAM dwInitParam = NULL);
Parâmetros
hWndParent
[dentro] A maçaneta da janela do dono.
RECT&rect [ em] Uma estrutura RECT que especifica o tamanho e a posição do diálogo.
dwInitParam
[dentro] Especifica o valor a passar para a caixa de diálogo no parâmetro lParam da mensagem WM_INITDIALOG.
Valor de retorno
O handle da nova caixa de diálogo criada.
Observações
Esta caixa de diálogo é automaticamente anexada ao CDialogImpl objeto. Para criar uma caixa de diálogo modal, ligue para DoModal. A segunda sobreposição acima é usada apenas com o CComControl.
CDialogImpl::D estroyWindow
Destrói uma caixa de diálogo sem modo.
BOOL DestroyWindow();
Valor de retorno
TRUE se a caixa de diálogo for destruída com sucesso; caso contrário, FALSO.
Observações
Retorna TRUE se a caixa de diálogo foi destruída com sucesso; caso contrário, FALSO.
CDialogImpl::D ialogProc
Esta função estática implementa o procedimento da caixa de diálogo.
static LRESULT CALLBACK DialogProc(
HWND hWnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam);
Parâmetros
hWnd
[dentro] O handle da caixa de diálogo.
uMsg
[dentro] A mensagem enviada para a caixa de diálogo.
wParam
[dentro] Informação adicional específica da mensagem.
lParam
[dentro] Informação adicional específica da mensagem.
Valor de retorno
TRUE se a mensagem for processada; caso contrário, FALSO.
Observações
DialogProc utiliza o mapa de mensagens padrão para direcionar mensagens aos manipuladores apropriados.
Pode sobrescrever DialogProc para fornecer um mecanismo diferente para lidar com as mensagens.
CDialogImpl::D oModal
Cria uma caixa de diálogo modal.
INT_PTR DoModal(
HWND hWndParent = ::GetActiveWindow(),
LPARAM dwInitParam = NULL);
Parâmetros
hWndParent
[dentro] A maçaneta da janela do dono. O valor padrão é o valor de retorno da função Win32 GetActiveWindow .
dwInitParam
[dentro] Especifica o valor a passar para a caixa de diálogo no parâmetro lParam da mensagem WM_INITDIALOG.
Valor de retorno
Se for bem-sucedido, o valor do parâmetro nRetCode especificado na chamada ao EndDialog. Caso contrário, -1.
Observações
Esta caixa de diálogo é automaticamente anexada ao CDialogImpl objeto.
Para criar uma caixa de diálogo sem modos, chame Criar.
CDialogImpl::EndDialog
Destrói uma caixa de diálogo modal.
BOOL EndDialog(int nRetCode);
Parâmetros
nRetCode
[dentro] O valor a ser devolvido por CDialogImpl::D oModal.
Valor de retorno
TRUE se a caixa de diálogo for destruída; caso contrário, FALSO.
Observações
EndDialog deve ser chamado através do procedimento de diálogo. Depois de a caixa de diálogo ser destruída, o Windows usa o valor de nRetCode como valor de retorno para DoModal, que criou a caixa de diálogo.
Observação
Não chame EndDialog para destruir uma caixa de diálogo sem modos. Ligue antes para CWindow::D estroyWindow .
CDialogImpl::GetDialogProc
Retorna DialogProc, o procedimento atual da caixa de diálogo.
virtual WNDPROC GetDialogProc();
Valor de retorno
O procedimento atual da caixa de diálogo.
Observações
Substitua este método para substituir o processo de diálogo pelo seu próprio.
CDialogImpl::MapDialogRect
Converte (mapeia) as unidades de caixa de diálogo do retângulo especificado em unidades de ecrã (píxeis).
BOOL MapDialogRect(LPRECT lpRect);
Parâmetros
lpRect
Aponta para um CRect objeto ou estrutura RECT que deve receber as coordenadas do cliente da atualização que envolve a região da atualização.
Valor de retorno
Diferente de zero se a atualização for bem-sucedida; 0 se a atualização falhar. Para obter informações de erro estendidas, ligue para GetLastError.
Observações
A função substitui as coordenadas na estrutura especificada RECT pelas coordenadas convertidas, o que permite que a estrutura seja usada para criar uma caixa de diálogo ou posicionar um controlo dentro de uma caixa de diálogo.
CDialogImpl::OnFinalMessage
Chamada após receber a última mensagem (normalmente WM_NCDESTROY).
virtual void OnFinalMessage(HWND hWnd);
Parâmetros
hWnd
[dentro] Uma maçaneta da janela a ser destruída.
Observações
Note que, se quiser eliminar automaticamente o seu objeto após a destruição da janela, pode chamar delete this; aqui.
CDialogImpl::StartDialogProc
Chamada apenas uma vez, quando a primeira mensagem é recebida, para processar mensagens enviadas para a caixa de diálogo.
static LRESULT CALLBACK StartDialogProc(
HWND hWnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam);
Parâmetros
hWnd
[dentro] O handle da caixa de diálogo.
uMsg
[dentro] A mensagem enviada para a caixa de diálogo.
wParam
[dentro] Informação adicional específica da mensagem.
lParam
[dentro] Informação adicional específica da mensagem.
Valor de retorno
O procedimento da janela.
Observações
Após a chamada inicial para StartDialogProc, DialogProc é definido como um procedimento de diálogo, e as chamadas seguintes seguem para lá.
Consulte também
BEGIN_MSG_MAP
Visão geral da classe