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