ActiveX - control ActiveX - combo box

 
Vista:

control ActiveX - combo box

Publicado por Sonia (2 intervenciones) el 03/07/2001 12:02:38
Hola,

Estoy intentando crear un ActiveX con VC++ que consiste unicamente en un combo box con una serie de metodos. Para ello he usado el MFC ActiveX Control Wizard y he puesto que el control sea subclase de combobox. Pero ¿como puedo acceder a la instancia del combo para llamar a su metodo AddString?

Muchas gracias por vuestra ayuda.

Sobre todo ejemplos con su codigo. Ya he mirado en el MSDN y no he encontrado nada que me ayude. Quizas no he buscado bien.

No he hecho nunca ningun ActiveX.

Gracias y adios
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 Andrade

control ActiveX - combo box

Publicado por Alejandro Andrade (213 intervenciones) el 28/03/2023 18:39:40
Hola, Sonia.

Para acceder a la instancia del ComboBox y llamar a su método AddString, puedes hacer lo siguiente:

1. En el archivo .h de tu control ActiveX, declara una variable miembro del tipo CComboBox:

1
2
3
4
5
6
7
class MiControlActivex : public COleControl
{
    // ...
private:
    CComboBox m_ComboBox;
    // ...
};

2. En el método OnDraw de tu control ActiveX, después de dibujar el ComboBox, llama al método SubclassDlgItem para subclasificar el control con la variable miembro que acabas de declarar:

1
2
3
4
5
6
7
void MiControlActivex::OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
    // ...
    m_ComboBox.Create(WS_VISIBLE | WS_TABSTOP | WS_CHILD | CBS_DROPDOWN, rcBounds, this, 1);
    m_ComboBox.SubclassDlgItem(1, this);
    // ...
}

3. Ahora puedes llamar al método AddString desde cualquier otro método de tu control ActiveX:

1
2
3
4
void MiControlActivex::AgregarOpcion(LPCTSTR lpszString)
{
    m_ComboBox.AddString(lpszString);
}

Espero que esto te sea útil.

¡Buena suerte con tu control ActiveX!
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