COleControl::IsConvertingVBX

BOOL IsConvertingVBX( );

返回值:
如果控件被转换,则返回非零值,否则为0。

说明:
当将使用VBX控件的表格转换成使用OLE控件的表格,要求使用OLE控件的特殊加载代码。例如,如果加载OLE控件的一个实例,必须在DoPropExchange调用PX_Font:
PX_Font(pPx, "Font", m_MyFont, pDefaultFont);
然而,VBX控件不具有Font对象;每个Font特性是分别存储的。这种情况下,必须使用IsConvertingVBX来区分这两种情形:
if(IsConvertingVBX()==FALSE)
  PX_Font(pPX, "Font", m_MyFont, pDefaultFont);
else
{
  PX_String(pPX, "FontName", tempString, DefaultName);
  m_MyFont->put_Name(tempString);
  PX_Bool(pPX, "FontUnderline", tempBool, DefaultValue);
  m_MyFont->put_Underline(tempBool);
  ...
}
另一种情形是:如果VBX控件存储特性二进制数据(在它的VBM_SAVEP ROPERTY消息处理函数中),而OLE控件使用不同的格式存储它的二进制数据。如果想要OLE控件和VBX控件兼容,不允许使用IsConvertingVBX函数区分加载的是VBX控件还是OLE控件,以便读取新旧两种格式的数据。
在控件的DoPropExchange函数中,可以检查该条件。如果条件成立,执行特殊的加载代码(如前面示例)。如果控件没有被转换,则执行常规加载代码。

请参阅:COleControl::DoPropExchange