共用方式為


COleControl::IsConvertingVBX

允許具有特製化 OLE 控制項的載入。

BOOL IsConvertingVBX( );

傳回值

不是零,如果控制項呈現;則為 0。

備註

當轉換使用 VBX 為其中一個控制項時使用 OLE 控制項的表單,可能需要 OLE 控制項的特殊載入程式碼。例如,在中,如果您載入您的 OLE 控制項執行個體,您可能會呼叫在您的 DoPropExchangePX_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 訊息處理常式 (Exception Handler),因此,您的 OLE 控制項儲存在不同格式的二進位資料。如果您希望 OLE 控制項與控制項 VBX 回溯相容,您可以讀取在舊的和新的格式是使用 IsConvertingVBX 函式透過差異 VBX 控制項或 OLE 控制項是否已載入。

在您的控制項 DoPropExchange 函式,您可以檢查這個條件,如果為 true,則執行載入特定程式碼為這個轉換 (如上一個範例)。如果控制項不會呈現,您可以執行一般負載程式碼。這項功能只適用於從 VBX 對應項目呈現的控制項。

需求

Header: afxctl.h

請參閱

參考

COleControl 類別

階層架構圖

COleControl::DoPropExchange