Partilhar via


Classe CAxDialogImpl

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 implementa uma caixa de diálogo (modal ou sem modo) que hospeda os controlos ActiveX.

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 CAxDialogImpl : public CDialogImplBaseT<TBase>

Parâmetros

T
A sua classe, derivada de CAxDialogImpl.

TBase
A classe base de janela para CDialogImplBaseT.

Membros

Métodos Públicos

Nome Description
CAxDialogImpl::AdviseSinkMap Chame este método para aconselhar ou desaconselhar todas as entradas no mapa de eventos do sink map do objeto.
CAxDialogImpl::Create Chame este método para criar uma caixa de diálogo sem modos.
CAxDialogImpl::D estroyWindow Chame este método para destruir uma caixa de diálogo sem modos.
CAxDialogImpl::D oModal Chame este método para criar uma caixa de diálogo modal.
CAxDialogImpl::EndDialog Chama a este método para destruir uma caixa de diálogo modal.
CAxDialogImpl::GetDialogProc Chame este método para obter um ponteiro para a DialogProc função de callback.
CAxDialogImpl::GetIDD Chame este método para obter o ID do recurso do modelo de diálogo
CAxDialogImpl::IsDialogMessage Chame este método para determinar se uma mensagem é destinada a esta caixa de diálogo e, se for, processe a mensagem.

Membros de Dados Protegidos

Nome Description
CAxDialogImpl::m_bModal Uma variável que existe apenas em compilações de depuração e que é definida como verdadeira se a caixa de diálogo for modal.

Observações

CAxDialogImpl permite criar uma caixa de diálogo modal ou sem modo. CAxDialogImpl fornece o procedimento da caixa de diálogo, que utiliza o mapa de mensagens por defeito para direcionar mensagens para os handlers apropriados.

CAxDialogImpl deriva de CDialogImplBaseT, que por sua vez deriva de TBase (por defeito, CWindow) e CMessageMap.

A sua classe deve definir um membro IDD que especifique o ID do recurso do modelo de diálogo. Por exemplo, adicionar um objeto de diálogo ATL usando a caixa de diálogo Adicionar Classe adiciona automaticamente a seguinte linha à sua classe:

enum { IDD = IDD_MYDLG };

onde MyDialog é o nome curto introduzido no ATL Dialog Wizard.

Consulte Implementar uma Caixa de Diálogo para mais informações.

Note que um controlo ActiveX numa caixa de diálogo modal criada com CAxDialogImpl não suporta teclas aceleradoras. Para suportar chaves aceleradoras numa caixa de diálogo criada com CAxDialogImpl, crie uma caixa de diálogo sem modos e, usando o seu próprio ciclo de mensagens, use CAxDialogImpl::IsDialogMessage após receber uma mensagem da fila para gerir uma chave aceleradora.

Para mais informações sobre CAxDialogImpl, consulte as Perguntas Frequentes sobre Contenção de Controlo ATL.

Hierarquia de herança

CMessageMap

TBase

CWindowImplRoot

CDialogImplBaseT

CAxDialogImpl

Requerimentos

Cabeçalho: atlwin.h

CAxDialogImpl::AdviseSinkMap

Chame este método para aconselhar ou desaconselhar todas as entradas no mapa de eventos do sink map do objeto.

HRESULT AdviseSinkMap(bool bAdvise);

Parâmetros

bAdvise
Definido para verdadeiro se todas as entradas de pila forem avisadas; falso se todas as entradas de pila não forem recomendadas.

Valor de retorno

Devolve S_OK em caso de sucesso, ou um erro HRESULT em caso de falha.

CAxDialogImpl::Create

Chame este método para criar 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.

dwInitParam
[dentro] Especifica o valor a passar para a caixa de diálogo no parâmetro lParam da mensagem WM_INITDIALOG.

RECT&
Este parâmetro não é utilizado. Este parâmetro é passado em por CComControl.

Valor de retorno

O handle da nova caixa de diálogo criada.

Observações

Esta caixa de diálogo é automaticamente anexada ao CAxDialogImpl objeto. Para criar uma caixa de diálogo modal, ligue para DoModal.

O segundo override é fornecido apenas para que as caixas de diálogo possam ser usadas com o CComControl.

CAxDialogImpl::D estroyWindow

Chame este método para destruir uma caixa de diálogo sem modos.

BOOL DestroyWindow();

Valor de retorno

VERDADEIRO se a janela for destruída com sucesso; caso contrário, FALSO.

Observações

Não chame DestroyWindow para destruir uma caixa de diálogo modal. Ligue para o EndDialog em vez disso.

CAxDialogImpl::D oModal

Chame este método para criar 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 CAxDialogImpl objeto.

Para criar uma caixa de diálogo sem modos, chame Criar.

CAxDialogImpl::EndDialog

Chama a este método para destruir uma caixa de diálogo modal.

BOOL EndDialog(int nRetCode);

Parâmetros

nRetCode
[dentro] O valor a ser devolvido pelo DoModal.

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 da caixa 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. Liga antes para o DestroyWindow .

CAxDialogImpl::GetDialogProc

Chame este método para obter um ponteiro para a DialogProc função de callback.

virtual DLGPROC GetDialogProc();

Valor de retorno

Devolve um ponteiro para a DialogProc função de retorno de chamada.

Observações

A DialogProc função é uma função de callback definida pela aplicação.

CAxDialogImpl::GetIDD

Chame este método para obter o ID de recurso do modelo de diálogo.

int GetIDD();

Valor de retorno

Devolve o ID de recurso do modelo de diálogo.

CAxDialogImpl::IsDialogMessage

Chame este método para determinar se uma mensagem é destinada a esta caixa de diálogo e, se for, processe a mensagem.

BOOL IsDialogMessage(LPMSG pMsg);

Parâmetros

pMsg
Apontar para uma estrutura MSG que contém a mensagem a verificar.

Valor de retorno

Retorna TRUE se a mensagem tiver sido processada, FALSE caso contrário.

Observações

Este método destina-se a ser chamado a partir de um loop de mensagens.

CAxDialogImpl::m_bModal

Uma variável que existe apenas em compilações de depuração e que é definida como verdadeira se a caixa de diálogo for modal.

bool m_bModal;

Consulte também

Classe CDialogImpl
Visão geral da classe