C/Visual C - Visual C: AddString

 
Vista:

Visual C: AddString

Publicado por Otto Gamboa (4 intervenciones) el 12/10/2001 01:03:08
He aqui mi problema:
En un dialogo tengo una listbox y para meter datos en ella lo hago con addstring, pero el problema surge cuando lo quiero hacer desde otro dialogo, todas los demas procedimientos funcionan pero al llamar a addstring este me da un error. Cualquier ayuda sera agradecida.
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

Agregar elementos a un ListBox desde otro diálogo

Publicado por Alejandro (913 intervenciones) el 16/10/2024 22:38:36
Para agregar elementos a un `ListBox` en un diálogo desde otro diálogo en MFC, necesitas asegurarte de que tienes acceso al control `ListBox` y que estás utilizando el identificador correcto. Aquí hay un enfoque general para hacerlo:

1. Obtener un puntero al diálogo que contiene el `ListBox`: Puedes hacerlo pasando un puntero al diálogo o utilizando `GetDlgItem` para obtener el control.

2. Usar `AddString` correctamente: Asegúrate de que estás llamando a `AddString` en el control `ListBox` correcto.

Ejemplo de implementación



Supongamos que tienes dos diálogos: `CDialogA` (que contiene el `ListBox`) y `CDialogB` (desde donde deseas agregar elementos al `ListBox`).

En `CDialogA` (el diálogo que contiene el ListBox)



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// CDialogA.h
class CDialogA : public CDialogEx
{
public:
    CDialogA(CWnd* pParent = nullptr); // Constructor
    void AddItemToListBox(const CString& item); // Método para agregar un ítem
 
protected:
    CListBox m_listBox; // Control ListBox
};
 
// CDialogA.cpp
void CDialogA::AddItemToListBox(const CString& item)
{
    m_listBox.AddString(item);
}

En `CDialogB` (el diálogo desde donde deseas agregar elementos)



1
2
3
4
5
6
7
8
9
10
11
// CDialogB.cpp
void CDialogB::OnBnClickedAddItem()
{
    // Supongamos que tienes un puntero a CDialogA
    CDialogA* pDialogA = (CDialogA*)GetParent(); // O el método que uses para obtener el puntero
 
    if (pDialogA)
    {
        pDialogA->AddItemToListBox(_T("Nuevo Item")); // Agregar un nuevo ítem
    }
}

Consideraciones



1. Asegúrate de que el control ListBox esté inicializado: Si intentas agregar un elemento antes de que el diálogo que contiene el `ListBox` esté completamente inicializado, puede causar errores.

2. Verifica el identificador del ListBox: Asegúrate de que el identificador del `ListBox` en el recurso sea correcto y que esté vinculado correctamente en el código.

3. Manejo de punteros: Asegúrate de que el puntero al diálogo que contiene el `ListBox` sea válido y que no esté nulo.

4. Sincronización: Si estás tratando de modificar el `ListBox` desde un hilo diferente, asegúrate de que estás utilizando la sincronización adecuada, ya que MFC no es segura para hilos.

¡Espero que esto te ayude, Otto!
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