Compartir a través de


Clase CAxDialogImpl

Esta clase implementa un cuadro de diálogo (modal o no modal) que hospeda controles ActiveX.

Importante

Esta clase y sus miembros no se pueden usar en las aplicaciones que se ejecutan en Windows Runtime.

Sintaxis

template <class T, class TBase = CWindow>
class ATL_NO_VTABLE CAxDialogImpl : public CDialogImplBaseT<TBase>

Parámetros

T
La clase, que se deriva de CAxDialogImpl.

TBase
Clase de ventana base para CDialogImplBaseT.

Miembros

Métodos públicos

Nombre Descripción
CAxDialogImpl::AdviseSinkMap Llame a este método para notificar o no notificar todas las entradas de la asignación de eventos del receptor del objeto.
CAxDialogImpl::Create Llame a este método para crear un cuadro de diálogo no modal.
CAxDialogImpl::DestroyWindow Llame a este método para destruir un cuadro de diálogo no modal.
CAxDialogImpl::DoModal Llame a este método para crear un cuadro de diálogo modal.
CAxDialogImpl::EndDialog Llame a este método para destruir un cuadro de diálogo modal.
CAxDialogImpl::GetDialogProc Llame a este método para obtener un puntero a la función de devolución de llamada DialogProc.
CAxDialogImpl::GetIDD Llame a este método para obtener el id. de recurso de la plantilla de diálogo
CAxDialogImpl::IsDialogMessage Llame a este método para determinar si un mensaje está pensado para este cuadro de diálogo y, si es así, procese el mensaje.

Miembros de datos protegidos

Nombre Descripción
CAxDialogImpl::m_bModal Variable que solo existe en compilaciones de depuración y se establece en true si el cuadro de diálogo es modal.

Comentarios

CAxDialogImpl permite crear un cuadro de diálogo modal o no modal. CAxDialogImpl proporciona el procedimiento del cuadro de diálogo, que usa la asignación de mensajes predeterminado para dirigir los mensajes a los controladores adecuados.

CAxDialogImpl deriva de CDialogImplBaseT, que a su vez deriva de TBase (de forma predeterminada, CWindow) y CMessageMap.

La clase debe definir un miembro IDD que especifique el id. de recurso de la plantilla de diálogo. Por ejemplo, al agregar un objeto de diálogo ATL mediante el cuadro de diálogo Agregar clase, se agrega de forma automática la siguiente línea a la clase:

enum { IDD = IDD_MYDLG };

donde MyDialog es el Nombre corto especificado en el diálogo ATL del asistente.

Consulte Implementar un cuadro de diálogo para más información.

Tenga en cuenta que un control ActiveX en un cuadro de diálogo modal creado con CAxDialogImpl no admitirá las teclas de aceleración. Para admitir teclas de aceleración en un cuadro de diálogo creado con CAxDialogImpl, cree un cuadro de diálogo no modal y, con su propio bucle de mensajes, use CAxDialogImpl::IsDialogMessage después de obtener un mensaje de la cola para controlar una tecla de aceleración.

Para obtener más información sobre CAxDialogImpl, consulte Preguntas más frecuentes sobre la contención de controles ATL.

Jerarquía de herencia

CMessageMap

TBase

CWindowImplRoot

CDialogImplBaseT

CAxDialogImpl

Requisitos

Encabezado: atlwin.h

CAxDialogImpl::AdviseSinkMap

Llame a este método para notificar o no notificar todas las entradas de la asignación de eventos del receptor del objeto.

HRESULT AdviseSinkMap(bool bAdvise);

Parámetros

bAdvise
Establézcalo en true si se deben notificar todas las entradas del receptor; false si todas las entradas del receptor se van a dejar de notificar.

Valor devuelto

Devuelve S_OK si es correcto o un error HRESULT en caso de error.

CAxDialogImpl::Create

Llame a este método para crear un cuadro de diálogo no modal.

HWND Create(HWND hWndParent, LPARAM dwInitParam = NULL);
HWND Create(HWND hWndParent, RECT&, LPARAM dwInitParam = NULL);

Parámetros

hWndParent
[in] Identificador de la ventana propietaria.

dwInitParam
[in] Especifica el valor que se va a pasar al cuadro de diálogo en el parámetro lParam del mensaje WM_INITDIALOG.

RECT&
Este parámetro no se utiliza. Este parámetro se pasa por CComControl.

Valor devuelto

Manipulador del cuadro de diálogo recién creado.

Comentarios

Este cuadro de diálogo se adjunta automáticamente al objeto CAxDialogImpl. Para crear un cuadro de diálogo modal, llame a DoModal.

La segunda invalidación solo se proporciona para que los cuadros de diálogo se puedan usar con CComControl.

CAxDialogImpl::DestroyWindow

Llame a este método para destruir un cuadro de diálogo no modal.

BOOL DestroyWindow();

Valor devuelto

TRUE si la ventana se destruye correctamente; en caso contrario, FALSE.

Comentarios

No llame a DestroyWindow para destruir un cuadro de diálogo modal. Llame a EndDialog en su lugar.

CAxDialogImpl::DoModal

Llame a este método para crear un cuadro de diálogo modal.

INT_PTR DoModal(
    HWND hWndParent = ::GetActiveWindow(),
    LPARAM dwInitParam = NULL);

Parámetros

hWndParent
[in] Identificador de la ventana propietaria. El valor predeterminado es el valor devuelto de la función de Win32 GetActiveWindow.

dwInitParam
[in] Especifica el valor que se va a pasar al cuadro de diálogo en el parámetro lParam del mensaje WM_INITDIALOG.

Valor devuelto

Si es correcto, el valor del parámetro nRetCode especificado en la llamada a EndDialog, de lo contrario, -1.

Comentarios

Este cuadro de diálogo se adjunta automáticamente al objeto CAxDialogImpl.

Para crear un cuadro de diálogo no modal, llame a Create.

CAxDialogImpl::EndDialog

Llame a este método para destruir un cuadro de diálogo modal.

BOOL EndDialog(int nRetCode);

Parámetros

nRetCode
[in] Valor devuelto por DoModal.

Valor devuelto

TRUE si se destruye el cuadro de diálogo; en caso contrario, FALSE.

Comentarios

EndDialog debe llamarse mediante el procedimiento del cuadro de diálogo. Una vez destruido el cuadro de diálogo, Windows usa el valor de nRetCode como valor devuelto de DoModal, que creó el cuadro de diálogo.

Nota:

No llame a EndDialog para destruir un cuadro de diálogo no modal. Llame a DestroyWindow en su lugar.

CAxDialogImpl::GetDialogProc

Llame a este método para obtener un puntero a la función de devolución de llamada DialogProc.

virtual DLGPROC GetDialogProc();

Valor devuelto

Devuelve un puntero a la función de devolución de llamada DialogProc.

Comentarios

La función DialogProc es una función de devolución de llamada definida por la aplicación.

CAxDialogImpl::GetIDD

Llame a este método para obtener el id. de recurso de la plantilla de diálogo.

int GetIDD();

Valor devuelto

Devuelve el id. de recurso de la plantilla de diálogo.

CAxDialogImpl::IsDialogMessage

Llame a este método para determinar si un mensaje está pensado para este cuadro de diálogo y, si es así, procese el mensaje.

BOOL IsDialogMessage(LPMSG pMsg);

Parámetros

PMSG
Puntero a una estructura MGS que contiene el mensaje que se va a comprobar.

Valor devuelto

Devuelve TRUE si el mensaje se ha procesado, FALSE de lo contrario.

Comentarios

Este método está pensado para que lo llamen desde dentro de un bucle de mensajes.

CAxDialogImpl::m_bModal

Variable que solo existe en compilaciones de depuración y se establece en true si el cuadro de diálogo es modal.

bool m_bModal;

Consulte también

CDialogImpl (clase)
Información general sobre la clase