次の方法で共有


COleControl::IsConvertingVBX

OLE コントロールの特別な読み込みを可能にします。

BOOL IsConvertingVBX( );

戻り値

コントロールが変換された場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

VBX コントロールを使ったフォームを OLE コントロールを使ったフォームに変換するとき、OLE コントロールの読み込み用に特別のコードが必要になります。 たとえば、OLE コントロールのインスタンスを読み込むときは、DoPropExchangePX_Font を次のように呼び出すことができます。

PX_Font(pPX, _T("Font"), *m_pMyFont, &DefaultFont);

VBX コントロールは、Font オブジェクトを持っていません。各フォント プロパティが個別に保存されています。 この場合、2 つのクラスを区別するために 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 コントロールに対する下位互換性を維持する場合は、読み込まれたのが VBX コントロールまたは OLE コントロールのどちらなのかを区別することによって、IsConvertingVBX 関数を使って新しいバージョンと以前のバージョンのどちらでも読み込めるようにできます。

コントロールの DoPropExchange 関数で、この状態をチェックし、true の場合は、この変換 (前の例のような) のための読み込みコードを実行できます。 コントロールが変換されないときは、通常の読み込みコードを実行できます。 この機能は、VBX のコントロールから変換できるコントロールに対してのみ適用されます。

必要条件

**ヘッダー:**afxctl.h

参照

参照

COleControl クラス

階層図

COleControl::DoPropExchange

その他の技術情報

COleControl のメンバー