COleControl::IsConvertingVBX
Allows especializado la carga de un control OLE.
BOOL IsConvertingVBX( );
Valor devuelto
Distinto de cero si el control está siendo convertido; si no 0.
Comentarios
Al convertir un formulario que utilice controles de VBX a uno que utilice controles OLE, el código especial de carga para controles OLE puede ser necesario. Por ejemplo, si está cargando una instancia de controles activex, podría tener una llamada a PX_Font en DoPropExchange:
PX_Font(pPX, _T("Font"), *m_pMyFont, &DefaultFont);
Sin embargo, los controles de VBX no tienen un objeto de fuente; cada propiedad de fuente se guardó individualmente. En este caso, utilizaría IsConvertingVBX para diferenciar entre estos dos casos:
if (!IsConvertingVBX())
{
PX_Font(pPX, _T("Font"), *m_pMyFont, &DefaultFont);
}
else
{
PX_String(pPX, _T("FontName"), tempString, DefaultName);
m_pMyFont->m_pFont->put_Name(tempString.AllocSysString());
PX_Bool(pPX, _T("FontUnderline"), tempBool, DefaultValue);
m_pMyFont->m_pFont->put_Underline(tempBool);
}
Otro caso sería si el control de VBX guardado datos binarios propietarios (en el controlador de mensajes VBM_SAVEPROPERTY ), y el control OLE guardan los datos binarios en un formato diferente. Si desea que el control OLE para ser compatible con el control de VBX, podría leer los antiguos y nuevos formatos mediante la función de IsConvertingVBX distinguiendo si el control de VBX o control OLE era cargado.
En función de DoPropExchange del control, puede comprobar esta condición y si es true, se ejecuta específico del código de la carga en esta conversión (como los ejemplos anteriores). Si el control no lo convierte, puede ejecutar código de carga normal. Esta función solo es aplicable a los controles que se convierten de sus homólogos de VBX.
Requisitos
encabezado: afxctl.h