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 訊息處理常式 (Exception Handler),因此,您的 OLE 控制項儲存在不同格式的二進位資料。如果您希望 OLE 控制項與控制項 VBX 回溯相容,您可以讀取在舊的和新的格式是使用 IsConvertingVBX 函式透過差異 VBX 控制項或 OLE 控制項是否已載入。
在您的控制項 DoPropExchange 函式,您可以檢查這個條件,如果為 true,則執行載入特定程式碼為這個轉換 (如上一個範例)。如果控制項不會呈現,您可以執行一般負載程式碼。這項功能只適用於從 VBX 對應項目呈現的控制項。
需求
Header: afxctl.h