C/Visual C - Utilizacion de controles en un CReBar

 
Vista:

Utilizacion de controles en un CReBar

Publicado por claudio (22 intervenciones) el 17/08/2002 16:43:01
Quisiera utilizar un objeto CReBar para de algun modo utilizar un dialogo incrustable en el framework de la aplicacion (como el navegador de clases de VC++), que contenga un combo box donde voy a insertar varias opciones y luego tomar la seleccion de usuario.
Mi pregunta es como hago para introducir los datos en el combo box y como hago para tomar la seleccion del usuario.

Desde ya 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

Uso de CReBar con Combo Box en un diálogo incrustable

Publicado por Alejandro (913 intervenciones) el 14/03/2025 19:05:02
Claudio, para implementar un objeto `CReBar` que contenga un `ComboBox` en tu aplicación utilizando MFC (Microsoft Foundation Classes), puedes seguir estos pasos:

1. Crear el diálogo incrustable:
- Crea un nuevo diálogo en tu proyecto MFC que contendrá el `ComboBox`. Puedes hacerlo utilizando el editor de recursos de Visual C++.
- Asegúrate de que el diálogo tenga un identificador único (por ejemplo, `IDD_MYDIALOG`).

2. Agregar el CReBar:
- En tu clase principal de la aplicación (por ejemplo, `CMainFrame`), agrega un objeto `CReBar` en el método de inicialización (como `OnCreate`).
- Asegúrate de que el `CReBar` esté correctamente inicializado y agregado a la ventana principal.

1
2
3
4
5
6
7
8
9
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
    // Código de inicialización del CReBar
    if (!m_wndReBar.Create(this) || !m_wndReBar.LoadSimpleLayout(IDR_MAINFRAME))
    {
        TRACE0("Failed to create rebar\n");
        return -1;      // fail to create
    }
}

3. Agregar el Combo Box al ReBar:
- Crea un `CComboBox` y agrégalo al `CReBar`. Puedes hacerlo en el mismo método donde inicializas el `CReBar`.

1
2
3
CComboBox* pComboBox = new CComboBox();
pComboBox->Create(CBS_DROPDOWN | WS_VISIBLE | WS_CHILD, CRect(0, 0, 100, 200), this, IDC_COMBOBOX);
m_wndReBar.AddBand(pComboBox);

4. Poblar el Combo Box:
- Para agregar opciones al `ComboBox`, puedes hacerlo en el método `OnInitDialog` de tu diálogo o en el constructor del `CComboBox`.

1
2
3
4
5
6
7
8
void CMyDialog::OnInitDialog() { CDialogEx::OnInitDialog();
 
   // Agregar opciones al ComboBox
   CComboBox* pComboBox = (CComboBox*)GetDlgItem(IDC_COMBOBOX);
   pComboBox->AddString(_T("Opción 1"));
   pComboBox->AddString(_T("Opción 2"));
   pComboBox->AddString(_T("Opción 3"));
}

5. Tomar la selección del usuario:
- Para obtener la selección del usuario, puedes utilizar el método `GetCurSel` del `CComboBox` y luego `GetLBText` para obtener el texto de la opción seleccionada.

5. Tomar la selección del usuario:
- Para obtener la selección del usuario, puedes utilizar el método `GetCurSel` del `CComboBox` y luego `GetLBText` para obtener el texto de la opción seleccionada.

1
2
3
4
5
6
7
8
9
10
11
void CMyDialog::OnButtonClicked()
{
    CComboBox* pComboBox = (CComboBox*)GetDlgItem(IDC_COMBOBOX);
    int nSel = pComboBox->GetCurSel();
    CString strSelected;
    if (nSel != CB_ERR)
    {
        pComboBox->GetLBText(nSel, strSelected);
        AfxMessageBox(strSelected); // Muestra la opción seleccionada
    }
}

6. Manejo de eventos:
- Asegúrate de manejar los eventos necesarios, como el clic en un botón para tomar la selección del `ComboBox`.

Siguiendo estos pasos, podrás implementar un `CReBar` que contenga un `ComboBox` en tu aplicación MFC, permitiendo a los usuarios seleccionar opciones de manera efectiva.
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