COleControl::IsConvertingVBX
Allows un spécialisé le chargement d'un contrôle OLE.
BOOL IsConvertingVBX( );
Valeur de retour
Une valeur différente de zéro si le contrôle est converti ; sinon 0.
Notes
En convertissant un formulaire qui utilise des contrôles de VBX à un qui utilisent des contrôles OLE, le code spécial de charge pour les contrôles OLE peut être requis.Par exemple, si vous chargez une instance de votre contrôle OLE, vous pouvez avoir un appel à PX_Font dans votre DoPropExchange:
PX_Font(pPX, _T("Font"), *m_pMyFont, &DefaultFont);
Toutefois, les contrôles de VBX n'ont pas d'un objet de police ; chaque propriété de police a été enregistrée individuellement.Dans ce cas, vous utiliserez IsConvertingVBX pour faire la distinction entre ces deux cas :
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);
}
Un autre cas serait si votre contrôle de VBX enrégistrait des données binaires propriétaire (dans son gestionnaire de messages de VBM_SAVEPROPERTY ), et votre contrôle OLE enregistre ses données binaires dans un format différent.Si vous souhaitez que votre contrôle OLE pour être à compatibilité descendante avec le contrôle de VBX, vous pouvez lire les formats anciens et nouveaux à l'aide de la fonction d' IsConvertingVBX en distinguant si le contrôle de VBX ou le contrôle OLE a été chargé.
Dans la fonction d' DoPropExchange de votre contrôle, vous pouvez vérifier cette condition et si la valeur true, exécutez le détail de code de chargement à cette conversion (comme les exemples précédents).Si le contrôle n'est pas converti, vous pouvez exécuter le code de chargement normal.Cette fonctionnalité s'applique uniquement aux contrôles qui convertit des équivalents de VBX.
Configuration requise
Header: afxctl.h