ActiveX - Controles sobre un ActiveX

 
Vista:

Controles sobre un ActiveX

Publicado por Carlos Benvides (1 intervención) el 01/05/2001 00:42:36
Estoy desarrollando un ActiveX (en Visual C++)cuya interfaz es un dialogo compuesto por un boton y un cuadro de texto...

Para hacer esto creo una clase dialogo que hereda de Dialog.. , en el método:

int CMiActiveX::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;

m_MiDialogo.Create(IDD_MIDIALOGO, this);

return 0;
}

creo el dialogo y en el método draw lo fijo como interfaz del ActiveX....

Segun lo anterior el dialogo se crea en tiempo de ejecución, por lo tanto en tiempo de edición debo tener otra interfaz... en este caso tengo la creada por defecto para un ActiveX...

Este modelo funciona pero tengo problemas al utilizarlo en mi aplicación.. si alguien sabe como hacer lo mismo de otra forma me gustaria que me contacte y compartir información...

[email protected]
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

Controles sobre un ActiveX

Publicado por Alejandro Andrade (213 intervenciones) el 28/03/2023 01:17:09
Si entiendo bien, estás teniendo problemas para manejar la creación de la interfaz de tu ActiveX en tiempo de diseño y en tiempo de ejecución. Una opción para resolver esto es utilizar una vista previa de diseño para la interfaz en tiempo de diseño, y luego crear y mostrar la interfaz en tiempo de ejecución.

Para hacer esto, puedes crear una clase que herede de CView, que se encargará de mostrar la vista previa en tiempo de diseño. En el método OnDraw de esta clase, puedes dibujar una representación visual de la interfaz de tu ActiveX.

Luego, en el método OnCreate de tu clase ActiveX, puedes crear el diálogo como lo estás haciendo actualmente, pero solo si no estás en tiempo de diseño. Puedes verificar esto utilizando la función GetParentFrame y comprobando si su clase es CRuntimeClass::m_pfnCreate == NULL, lo que indica que no hay un marco padre (y por lo tanto estás en tiempo de diseño).

Si estás en tiempo de diseño, en lugar de crear el diálogo, puedes simplemente crear y mostrar la vista previa que creaste anteriormente.

Para obtener más información sobre cómo crear una vista previa de diseño en MFC, puedes consultar la documentación oficial de Microsoft: https://docs.microsoft.com/en-us/cpp/mfc/how-to-provide-a-design-time-view-of-an-activex-control?view=msvc-170
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