C/Visual C - Como pasar controles a otro dialogo

 
Vista:

Como pasar controles a otro dialogo

Publicado por Wylly (11 intervenciones) el 08/04/2003 12:39:21
Hola. Tengo unas dudas de Visual C. Quiero pulsar un boton para que se habra un nuevo dialogo. Lo que sucede es que quiero crear una nueva ventana, pero necesito un control de la anterior pagina. Que funcion puedo emplear para pasarle el control?. La llamada hasta ese nuevo dialogo es:

CTransfDlg dlg
dlg.DoModal();

Lo que no se es como paso el control de parametro.

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Pasar un control de un diálogo a otro en MFC

Publicado por Alejandro (1153 intervenciones) el 13/05/2025 20:58:19
Para pasar un control de un diálogo a otro en MFC, puedes modificar el constructor de tu nuevo diálogo (`CTransfDlg`) para que acepte un puntero o una referencia al control que deseas pasar. Aquí te muestro cómo hacerlo:

1. Modifica el constructor de `CTransfDlg` para aceptar un puntero al control que deseas pasar. Por ejemplo, si estás pasando un control de tipo `CEdit`, el constructor podría verse así:

1
2
3
4
5
6
7
8
class CTransfDlg : public CDialogEx
{
public:
    CTransfDlg(CWnd* pParent = nullptr, CEdit* pEditControl = nullptr); // Constructor modificado
    // ...
private:
    CEdit* m_pEditControl; // Puntero al control
};

2. Implementa el constructor para inicializar el puntero:

1
2
3
4
CTransfDlg::CTransfDlg(CWnd* pParent, CEdit* pEditControl)
    : CDialogEx(IDD_TRANSFDLG, pParent), m_pEditControl(pEditControl)
{
}

3. Al abrir el nuevo diálogo, pasa el control como parámetro:

1
2
3
CEdit* pEditControl = (CEdit*)GetDlgItem(IDC_YOUR_EDIT_CONTROL_ID); // Obtén el control
CTransfDlg dlg(this, pEditControl); // Pasa el control al nuevo diálogo
dlg.DoModal();

4. En el nuevo diálogo, puedes usar `m_pEditControl` para acceder al control original y, por ejemplo, leer o modificar su contenido.

Con este enfoque, podrás pasar el control de un diálogo a otro y manipularlo según sea necesario. Asegúrate de manejar adecuadamente la validez del puntero para evitar errores. ¡Espero que esto te ayude, Wylly!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar