COleControl::IsConvertingVBX
Allows especializou a carga de um controlador do OLE.
BOOL IsConvertingVBX( );
Valor de retorno
Diferente de zero se o controle está sendo convertido; se não 0.
Comentários
A o converter um formulário que usa controles de VBX a um que usar controladores OLE, o código especial de carregamento para controladores OLE pode ser necessário.Por exemplo, se você está carregando uma instância do seu controlador OLE, você pode ter uma chamada para PX_Font em seu DoPropExchange:
PX_Font(pPX, _T("Font"), *m_pMyFont, &DefaultFont);
Entretanto, os controles de VBX não tivessem um objeto da fonte; cada propriedade de fonte foi salva individualmente.Em esse caso, você usaria IsConvertingVBX para distinguir entre esses dois 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);
}
Outro caso eles seriam se o controle de VBX salvar dados binários proprietários (em seu manipulador de mensagem de VBM_SAVEPROPERTY ), e o controlador OLE salva os dados binários em um formato diferente.Se você desejar que o controlador para OLE trás- para ser compatível com o controle de VBX, você pode ler os formatos antigos e novos usando a função de IsConvertingVBX para distinguir se o controle de VBX o controlador ou OLE foram carregados.
Em a função de DoPropExchange do seu controle, você pode verificar essa condição e se verdadeiro, executa o código específico da carga de essa conversão (como os exemplos anteriores).Se o controle não está sendo convertido, você pode executar o código de carregamento normal.Esse recurso é aplicável somente aos controles que está sendo convertido de contrapartes de VBX.
Requisitos
Cabeçalho: afxctl.h