Compartir a través de


CDialogImpl (clase)

Esta clase proporciona métodos para crear un cuadro de diálogo modal o no modal.

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

Parámetros

T
La clase, que se deriva de CDialogImpl.

TBase
Clase base de la nueva clase. El valor predeterminado de esta clase base es CWindow.

Miembros

Métodos

Función Descripción
Creación Crea un cuadro de diálogo no modal.
DestroyWindow Destruye un cuadro de diálogo no modal.
DoModal Crea un cuadro de diálogo modal.
EndDialog Destruye un cuadro de diálogo modal.

Métodos CDialogImplBaseT

Función Descripción
GetDialogProc Devuelve el procedimiento del cuadro de diálogo actual.
MapDialogRect Asigna las unidades de cuadro de diálogo del rectángulo especificado a unidades de pantalla (píxeles).
OnFinalMessage Se le llama después de recibir el último mensaje, normalmente WM_NCDESTROY.

Funciones estáticas

Función Descripción
DialogProc Procesa los mensajes enviados al cuadro de diálogo.
StartDialogProc Se le llama cuando se recibe el primer mensaje para procesar los mensajes enviados al cuadro de diálogo.

Comentarios

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

El destructor de clase base ~CWindowImplRoot garantiza que la ventana desaparezca antes de que se destruya el objeto.

CDialogImpl deriva de CDialogImplBaseT que, a su vez, deriva de CWindowImplRoot.

Nota:

La clase debe definir un miembro IDD que especifique el identificador de recurso de plantilla de cuadro de diálogo. Por ejemplo, el Asistente para proyectos ATL agrega automáticamente la siguiente línea a la clase:

enum { IDD = IDD_MYDLG };

donde MyDlg es el nombre corto especificado en la página Nombres del asistente.

Para obtener más información, vea: Vea
Crear controles Tutorial de ATL
Uso de cuadros de diálogo en ATL Clases de ventana ATL
Asistente para proyectos ATL Creación de un proyecto ATL
Cuadros de diálogo Cuadros de diálogo y temas posteriores en Windows SDK

Requisitos

Encabezado: atlwin.h

CDialogImpl::Create

Crea 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.

RECT&rect [in] Estructura RECT que especifica el tamaño y la posición del diálogo.

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

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

Comentarios

Este cuadro de diálogo se adjunta automáticamente al objeto CDialogImpl. Para crear un cuadro de diálogo modal, llame a DoModal. La segunda invalidación anterior solo se usa con CComControl.

CDialogImpl::DestroyWindow

Destruye un cuadro de diálogo no modal.

BOOL DestroyWindow();

Valor devuelto

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

Comentarios

Devuelve TRUE si el cuadro de diálogo se ha destruido correctamente; en caso contrario, FALSE.

CDialogImpl::DialogProc

Esta función estática implementa el procedimiento del cuadro de diálogo.

static LRESULT CALLBACK DialogProc(
    HWND hWnd,
    UINT uMsg,
    WPARAM wParam,
    LPARAM lParam);

Parámetros

hWnd
[in] Identificador del cuadro de diálogo.

uMsg
[in] Mensaje enviado al cuadro de diálogo.

wParam
[in] Información adicional específica del mensaje.

lParam
[in] Información adicional específica del mensaje.

Valor devuelto

TRUE si se procesa el mensaje; de lo contrario, FALSE.

Comentarios

DialogProc usa el mapa de mensajes predeterminado para dirigir los mensajes a los controladores adecuados.

Puede invalidar DialogProc para proporcionar un mecanismo diferente para controlar los mensajes.

CDialogImpl::DoModal

Crea 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. En caso contrario, -1.

Comentarios

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

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

CDialogImpl::EndDialog

Destruye un cuadro de diálogo modal.

BOOL EndDialog(int nRetCode);

Parámetros

nRetCode
[in] Valor que va a devolver CDialogImpl::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 CWindow::DestroyWindow en su lugar.

CDialogImpl::GetDialogProc

Devuelve DialogProc, el procedimiento del cuadro de diálogo actual.

virtual WNDPROC GetDialogProc();

Valor devuelto

Procedimiento del cuadro de diálogo actual.

Comentarios

Invalide este método para reemplazar el procedimiento del cuadro de diálogo por el suyo propio.

CDialogImpl::MapDialogRect

Convierte (asigna) las unidades de cuadro de diálogo del rectángulo especificado en unidades de pantalla (píxeles).

BOOL MapDialogRect(LPRECT lpRect);

Parámetros

lpRect
Apunta a un objeto CRect o estructura RECT que va a recibir las coordenadas de cliente de la actualización que incluye la región de actualización.

Valor devuelto

Distinto de cero si la actualización se realiza correctamente; 0 si se produce un error en la actualización. Para obtener información de errores extendida, realice una llamada a GetLastError.

Comentarios

La función reemplaza las coordenadas de la estructura RECT especificada por las coordenadas convertidas, lo que permite a la estructura que se va a usar crear un cuadro de diálogo o colocar un control dentro de un cuadro de diálogo.

CDialogImpl::OnFinalMessage

Se le llama después de recibir el último mensaje (normalmente WM_NCDESTROY).

virtual void OnFinalMessage(HWND hWnd);

Parámetros

hWnd
[in] Identificador de la ventana que se está destruyendo.

Comentarios

Tenga en cuenta que si desea eliminar automáticamente el objeto tras la destrucción de la ventana, puede llamar a delete this; aquí.

CDialogImpl::StartDialogProc

Se le llama solo una vez, cuando se recibe el primer mensaje, para procesar los mensajes enviados al cuadro de diálogo.

static LRESULT CALLBACK StartDialogProc(
    HWND hWnd,
    UINT uMsg,
    WPARAM wParam,
    LPARAM lParam);

Parámetros

hWnd
[in] Identificador del cuadro de diálogo.

uMsg
[in] Mensaje enviado al cuadro de diálogo.

wParam
[in] Información adicional específica del mensaje.

lParam
[in] Información adicional específica del mensaje.

Valor devuelto

Procedimiento de ventana.

Comentarios

Después de la llamada inicial a StartDialogProc, DialogProc se establece como un procedimiento del cuadro de diálogo, y las llamadas subsiguientes se dirigen ahí.

Consulte también

BEGIN_MSG_MAP
Información general sobre la clase