COleControl::IsConvertingVBX
允许专用OLE控件的填充。
BOOL IsConvertingVBX( );
返回值
非零,则控件的转换;否则为0。
备注
当转换使用VBX控件绑定到一个时使用OLE控件的窗体,可能需要OLE控件的特定代码加载。 例如,因此,如果加载您的OLE控件实例,您可能包含名为到您的 DoPropExchange的 PX_Font :
PX_Font(pPX, _T("Font"), *m_pMyFont, &DefaultFont);
但是,VBX控件没有字体对象;每个字体属性分别保存起来。 在这种情况下,将使用 IsConvertingVBX 区分这两种情况之间:
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);
}
另一种情况是,如果您的VBX控件保存的所有权二进制数据(在其 VBM_SAVEPROPERTY 消息处理程序),并且,如果您的OLE控件保存其二进制数据以不同的格式。 如果希望的OLE控件与VBX控件实现向后兼容,您可以读取旧的和新的布局使用 IsConvertingVBX 函数来区分VBX控件或OLE控件是否加载。
在控件中 DoPropExchange 功能,可以检查此条件,如果为true,执行将代码加载特定于此转换(例如前面的示例)。 如果没有将控件,可以执行正常的负载代码。 此功能仅适用于从VBX重复转换的控件。
要求
Header: afxctl.h