Share via


COleControlContainer クラス

ActiveX コントロールのコントロール コンテナーとして機能します。

構文

class COleControlContainer : public CCmdTarget

メンバー

パブリック コンストラクター

名前 説明
COleControlContainer::COleControlContainer COleControlContainer オブジェクトを構築します。

パブリック メソッド

名前 説明
COleControlContainer::AttachControlSite コンテナーによってホストされるコントロール サイトを作成します。
COleControlContainer::BroadcastAmbientPropertyChange アンビエント プロパティが変更されたことを、ホストされているすべてのコントロールに通知します。
COleControlContainer::CheckDlgButton 指定したボタン コントロールを変更します。
COleControlContainer::CheckRadioButton グループの指定したラジオ ボタンを選択します。
COleControlContainer::CreateControl ホストされた ActiveX コントロールを作成します。
COleControlContainer::CreateOleFont OLE フォントを作成します。
COleControlContainer::FindItem 指定したコントロールのカスタム サイトを返します。
COleControlContainer::FreezeAllEvents コントロール サイトがイベントを受け入れているかどうかを判断します。
COleControlContainer::GetAmbientProp 指定したアンビエント プロパティを取得します。
COleControlContainer::GetDlgItem 指定したダイアログ コントロールを取得します。
COleControlContainer::GetDlgItemInt 指定したダイアログ コントロールの値を取得します。
COleControlContainer::GetDlgItemText 指定したダイアログ コントロールのキャプションを取得します。
COleControlContainer::HandleSetFocus コンテナーが WM_Standard Edition TFOCUS メッセージを処理するかどうかを決定します。
COleControlContainer::HandleWindowlessMessage ウィンドウレス コントロールに送信されたメッセージを処理します。
COleControlContainer::IsDlgButtonChecked 指定したボタンの状態を決定します。
COleControlContainer::Onペイント コンテナーの一部を再描画するために呼び出されます。
COleControlContainer::OnUIActivate コントロールがインプレース アクティブ化されようとしているときに呼び出されます。
COleControlContainer::OnUIDeactivate コントロールが非アクティブ化されるときに呼び出されます。
COleControlContainer::ScrollChildren スクロール メッセージが子ウィンドウから受信されたときにフレームワークによって呼び出されます。
COleControlContainer::SendDlgItemMessage 指定されたコントロールにメッセージを送信します。
COleControlContainer::SetDlgItemInt 指定したコントロールの値を設定します。
COleControlContainer::SetDlgItemText 指定したコントロールのテキストを設定します。

パブリック データ メンバー

名前 説明
COleControlContainer::m_crBack コンテナーの背景色。
COleControlContainer::m_crFore コンテナーの前景色。
COleControlContainer::m_listSitesOrWnds サポートされているコントロール サイトの一覧。
COleControlContainer::m_nWindowlessControls ホストされているウィンドウレス コントロールの数。
COleControlContainer::m_pOleFont カスタム コントロール サイトの OLE フォントへのポインター。
COleControlContainer::m_pSiteCapture キャプチャ コントロール サイトへのポインター。
COleControlContainer::m_pSiteFocus 現在入力フォーカスがあるコントロールへのポインター。
COleControlContainer::m_pSiteUIActive 現在インプレース アクティブ化されているコントロールへのポインター。
COleControlContainer::m_pWnd コントロール コンテナーを実装するウィンドウへのポインター。
COleControlContainer::m_siteMap サイト マップ。

解説

これは、1 つ以上の ActiveX コントロール サイト (実装によって実装) のサポートを提供することによって COleControlSite行われます。 COleControlContainerは IOleInPlaceFrame インターフェイスと IOleContainer インターフェイスを完全に実装し、含まれている ActiveX コントロールがインプレースアイテムとしての修飾を満たすことができます。

通常、このクラスは、1 つ以上の ActiveX コントロールのカスタム サイトを含むカスタム ActiveX コントロール コンテナーと組み合わせて COccManager 使用され COleControlSite 、実装されます。

継承階層

CObject

CCmdTarget

COleControlContainer

必要条件

ヘッダー: afxocc.h

COleControlContainer::AttachControlSite

コントロール サイトを作成してアタッチするためにフレームワークによって呼び出されます。

virtual void AttachControlSite(
    CWnd* pWnd,
    UINT nIDC = 0);

void AttachControlSite(
    CWnd* pWnd,
    UINT nIDC = 0);

パラメーター

pWnd
CWnd オブジェクトを指すポインターです。

nIDC
アタッチするコントロールの ID。

解説

このプロセスをカスタマイズする場合は、この関数をオーバーライドします。

Note

MFC ライブラリに静的にリンクする場合は、この関数の最初の形式を使用します。 MFC ライブラリに動的にリンクする場合は、2 番目のフォームを使用します。

COleControlContainer::BroadcastAmbientPropertyChange

アンビエント プロパティが変更されたことを、ホストされているすべてのコントロールに通知します。

virtual void BroadcastAmbientPropertyChange(DISPID dispid);

パラメーター

dispid
変更されるアンビエント プロパティのディスパッチ ID。

解説

この関数は、アンビエント プロパティの値が変更されたときにフレームワークによって呼び出されます。 この動作をカスタマイズするには、この関数をオーバーライドします。

COleControlContainer::CheckDlgButton

ボタンの現在の状態を変更します。

virtual void CheckDlgButton(
    int nIDButton,
    UINT nCheck);

パラメーター

nIDButton
変更するボタンの ID。

nCheck
ボタンの状態を指定します。 以下のいずれかを指定できます。

  • BST_CHECKED ボタンの状態をチェックに設定します。

  • BST_INDETERMINATE 不確定な状態を示す、ボタンの状態を灰色に設定します。 ボタンにBS_3STATEまたはBS_AUTO3STATEスタイルがある場合にのみ、この値を使用します。

  • BST_UNCHECKED ボタンの状態をクリアに設定します。

COleControlContainer::CheckRadioButton

グループ内の指定したラジオ ボタンを選択し、グループ内の再メインボタンをクリアします。

virtual void CheckRadioButton(
    int nIDFirstButton,
    int nIDLastButton,
    int nIDCheckButton);

パラメーター

nIDFirstButton
グループ内の最初のラジオ ボタンの識別子を指定します。

nIDLastButton
グループ内の最後のラジオ ボタンの識別子を指定します。

nIDCheckButton
チェックするラジオ ボタンの識別子を指定します。

COleControlContainer::COleControlContainer

COleControlContainer オブジェクトを構築します。

explicit COleControlContainer(CWnd* pWnd);

パラメーター

pWnd
コントロール コンテナーの親ウィンドウへのポインター。

解説

オブジェクトが正常に作成されたら、呼び出しを含むカスタム コントロール サイトを追加します AttachControlSite

COleControlContainer::CreateControl

指定した COleControlSite オブジェクトによってホストされる ActiveX コントロールを作成します。

BOOL CreateControl(
    CWnd* pWndCtrl,
    REFCLSID clsid,
    LPCTSTR lpszWindowName,
    DWORD dwStyle,
    const RECT& rect,
    UINT nID,
    CFile* pPersist =NULL,
    BOOL bStorage =FALSE,
    BSTR bstrLicKey =NULL,
    COleControlSite** ppNewSite =NULL);

BOOL CreateControl(
    CWnd* pWndCtrl,
    REFCLSID clsid,
    LPCTSTR lpszWindowName,
    DWORD dwStyle,
    const POINT* ppt,
    const SIZE* psize,
    UINT nID,
    CFile* pPersist =NULL,
    BOOL bStorage =FALSE,
    BSTR bstrLicKey =NULL,
    COleControlSite** ppNewSite =NULL);

パラメーター

pWndCtrl
コントロールを表すウィンドウ オブジェクトへのポインター。

clsid
コントロールの一意のクラス ID。

lpszWindowName
コントロールに表示するテキストへのポインター。 コントロールの Caption プロパティまたは Text プロパティの値を設定します (存在する場合)。 NULL の場合、コントロールの Caption プロパティまたは Text プロパティは変更されません。

dwStyle
Windows スタイル。 使用できるスタイルは、[解説] セクションの下に一覧表示されます。

rect
コントロールのサイズと位置を指定します。 オブジェクトまたはRECT構造体をCRect指定できます。

nID
コントロールの子ウィンドウ ID を指定します。

pPersist
コントロールの永続的な CFile 状態を含むポインター。 既定値は NULL で、永続的ストレージから状態を復元せずにコントロール自体を初期化することを示します。 NULL でない場合は、ストリームまたはストレージのいずれかの形式で、コントロールの永続的なデータを含む -derived オブジェクトへのポインター CFileである必要があります。 このデータは、クライアントの以前のアクティブ化で保存されている可能性があります。 他のデータを CFile 含めることができますが、読み取り/書き込みポインターは、呼び出し時に永続データの最初のバイトに設定する CreateControl必要があります。

bStorage
pPersistデータをデータとして解釈するか、データIStreamとしてIStorage解釈するかを示します。 pPersist 内のデータがストレージの場合、bStorage は TRUE にする必要があります。 pPersist 内のデータがストリームの場合、bStorage は FAL Standard Edition にする必要があります。 既定値は FALSE です。

bstrLicKey
オプションのライセンス キー データ。 このデータは、ランタイム ライセンス キーを必要とするコントロールを作成する場合にのみ必要です。 コントロールがライセンスをサポートしている場合は、コントロールの作成を成功させるためにライセンス キーを指定する必要があります。 既定値は NULL です。

ppNewSite
作成されるコントロールをホストする既存のコントロール サイトへのポインター。 既定値は NULL で、新しいコントロール サイトが自動的に作成され、新しいコントロールにアタッチされることを示します。

Ppt
コントロールの POINT 左上隅を含む構造体へのポインター。 コントロールのサイズは、psize値によって決まります。 ppt 値と psize 値は、コントロールのサイズと位置を指定するオプションの方法です。

psize
コントロールのサイズを SIZE 含む構造体へのポインター。 左上隅は ppt値によって決まります。 ppt 値と psize 値は、コントロールのサイズと位置を指定するオプションの方法です。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

Windows dwStyle フラグのサブセットのみが次の方法で CreateControlサポートされます。

  • WS_VISIBLE 最初に表示されるウィンドウを作成します。 通常のウィンドウのように、コントロールをすぐに表示する場合は必須です。

  • WS_DISABLED 最初に無効になっているウィンドウを作成します。 無効なウィンドウは、ユーザーからの入力を受け取ることができません。 コントロールに Enabled プロパティがある場合に設定できます。

  • WS_BORDER 細線の境界線を持つウィンドウを作成します。 コントロールに BorderStyle プロパティがある場合に設定できます。

  • WS_GROUP コントロールのグループの最初のコントロールを指定します。 ユーザーは、方向キーを使用して、グループ内のあるコントロールから次のコントロールにキーボード フォーカスを変更できます。 最初のコントロールの後にWS_GROUP スタイルで定義されたすべてのコントロールは、同じグループに属します。 WS_GROUP スタイルの次のコントロールは、グループを終了し、次のグループを開始します。

  • WS_TABSTOP ユーザーが Tab キーを押したときにキーボード フォーカスを受け取ることができるコントロールを指定します。 Tab キーを押すと、キーボード フォーカスが WS_TABSTOP スタイルの次のコントロールに変更されます。

2 番目のオーバーロードを使用して、既定のサイズのコントロールを作成します。

COleControlContainer::CreateOleFont

OLE フォントを作成します。

void CreateOleFont(CFont* pFont);

パラメーター

pFont
コントロール コンテナーで使用されるフォントへのポインター。

COleControlContainer::FindItem

指定したアイテムをホストするカスタム サイトを検索します。

virtual COleControlSite* FindItem(UINT nID) const;

パラメーター

nID
見つかる項目の識別子。

戻り値

指定した項目のカスタム サイトへのポインター。

COleControlContainer::FreezeAllEvents

コンテナーがアタッチされたコントロール サイトからのイベントを無視するか、受け入れるかを決定します。

void FreezeAllEvents(BOOL bFreeze);

パラメーター

bFreeze
イベントが処理される場合は 0 以外。それ以外の場合は 0。

解説

Note

コントロール コンテナーによって要求された場合、コントロールはイベントの発生を停止する必要はありません。 引き続き起動できますが、後続のすべてのイベントはコントロール コンテナーによって無視されます。

COleControlContainer::GetAmbientProp

指定したアンビエント プロパティの値を取得します。

virtual BOOL GetAmbientProp(
    COleControlSite* pSite,
    DISPID dispid,
    VARIANT* pvarResult);

パラメーター

pSite
アンビエント プロパティの取得元となるコントロール サイトへのポインター。

dispid
目的のアンビエント プロパティのディスパッチ ID。

pVarResult
アンビエント プロパティの値へのポインター。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

COleControlContainer::GetDlgItem

ダイアログ ボックスまたはその他のウィンドウで、指定したコントロールまたは子ウィンドウへのポインターを取得します。

virtual CWnd* GetDlgItem(int nID) const;

virtual void GetDlgItem(
    int nID,
    HWND* phWnd) const;

パラメーター

nID
取得するダイアログ 項目の識別子。

phWnd
指定したダイアログ 項目のウィンドウ オブジェクトのハンドルへのポインター。

戻り値

ダイアログ アイテムのウィンドウへのポインター。

COleControlContainer::GetDlgItemInt

指定されたコントロールの翻訳されたテキストの値を取得します。

virtual UINT GetDlgItemInt(
    int nID,
    BOOL* lpTrans,
    BOOL bSigned) const;

パラメーター

nID
コントロールの識別子。

lpTrans
関数の成功/失敗値を受け取るブール変数へのポインター (TRUE は成功を示し、FAL Standard Edition は失敗を示します)。

bSigned
関数が最初に負符号のテキストを調べ、符号付き整数値が見つかる場合に返すかどうかを指定します。 bSigned パラメーターが TRUE で、取得する値が符号付き整数値であることを指定する場合は、戻り値をint型にキャストします。 詳細なエラー情報を得るには、GetLastError を呼び出します。

戻り値

成功した場合、lpTrans指す変数は TRUE に設定され、戻り値はコントロール テキストの変換された値になります。

関数が失敗した場合、lpTrans指す変数は FAL Standard Edition に設定され、戻り値は 0 になります。 0 は変換可能な値であるため、戻り値 0 はそれ自体が失敗を示すわけではないことに注意してください。

lpTrans が NULL の場合、関数は成功または失敗に関する情報を返しません。

解説

この関数は、テキストの先頭に余分なスペースを取り除き、10 進数を変換することで、取得したテキストを変換します。 この関数は、テキストの末尾に達するか、数値以外の文字を検出すると、翻訳を停止します。

この関数は、変換された値がINT_MAX (符号付き数値の場合) またはUINT_MAX (符号なし番号の場合) より大きい場合、0 を返します。

COleControlContainer::GetDlgItemText

指定されたコントロールのテキストを取得します。

virtual int GetDlgItemText(
    int nID,
    LPTSTR lpStr,
    int nMaxCount) const;

パラメーター

nID
コントロールの識別子。

Lpstr
コントロールのテキストへのポインター。

nMaxCount
lpStr が指すバッファーにコピーする文字列の最大長を文字数で 指定します。 文字列の長さが制限を超えた場合、文字列は切り捨てられます。

戻り値

関数が成功した場合、戻り値はバッファーにコピーされる文字数を指定します。終端の null 文字は含まれません。

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

COleControlContainer::HandleSetFocus

コンテナーが WM_Standard Edition TFOCUS メッセージを処理するかどうかを決定します。

virtual BOOL HandleSetFocus();

戻り値

コンテナーが WM_Standard Edition TFOCUS メッセージを処理する場合は 0 以外、それ以外の場合は 0。

COleControlContainer::HandleWindowlessMessage

ウィンドウレス コントロールのウィンドウ メッセージを処理します。

virtual BOOL HandleWindowlessMessage(
    UINT message,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* plResult);

パラメーター

message
Windows によって提供されるウィンドウ メッセージの識別子。

wParam
メッセージのパラメーター。Windows によって提供されます。 追加のメッセージ固有の情報を指定します。 このパラメーターの内容は、メッセージ パラメーターの値によって異なります。

lParam
メッセージのパラメーター。Windows によって提供されます。 追加のメッセージ固有の情報を指定します。 このパラメーターの内容は、メッセージ パラメーターの値によって異なります。

plResult
Windows の結果コード。 メッセージ処理の結果を指定し、送信されるメッセージに依存します。

戻り値

成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

ウィンドウレス コントロール メッセージの処理をカスタマイズするには、この関数をオーバーライドします。

COleControlContainer::IsDlgButtonChecked

指定したボタンの状態を決定します。

virtual UINT IsDlgButtonChecked(int nIDButton) const;

パラメーター

nIDButton
ボタン コントロールの識別子。

戻り値

BS_AUTOCHECKB (キロバイト)OX、BS_AUTORADIOBUTTON、BS_AUTO3STATE、BS_CHECKB (キロバイト)OX、BS_RADIOBUTTON、またはBS_3STATE スタイルで作成されたボタンからの戻り値。 以下のいずれかを指定できます。

  • BST_CHECKEDボタンがチェックされます。

  • BST_INDETERMINATE Button が灰色で表示され、不確定な状態が示されます (ボタンにBS_3STATEまたはBS_AUTO3STATEスタイルがある場合にのみ適用されます)。

  • BST_UNCHECKED ボタンがオフになっています。

解説

ボタンが 3 状態コントロールの場合、メンバー関数は、ボタンが淡色表示されているか、チェックされているか、どちらであるかを判断します。

COleControlContainer::m_crBack

コンテナーの背景色。

COLORREF m_crBack;

COleControlContainer::m_crFore

コンテナーの前景色。

COLORREF m_crFore;

COleControlContainer::m_listSitesOrWnds

コンテナーによってホストされているコントロール サイトの一覧。

CTypedPtrList<CPtrList, COleControlSiteOrWnd*> m_listSitesOrWnds;

COleControlContainer::m_nWindowlessControls

コントロール コンテナーによってホストされるウィンドウレス コントロールの数。

int m_nWindowlessControls;

COleControlContainer::m_pOleFont

カスタム コントロール サイトの OLE フォントへのポインター。

LPFONTDISP m_pOleFont;

COleControlContainer::m_pSiteCapture

キャプチャ コントロール サイトへのポインター。

COleControlSite* m_pSiteCapture;

COleControlContainer::m_pSiteFocus

現在入力フォーカスがあるコントロール サイトへのポインター。

COleControlSite* m_pSiteFocus;

COleControlContainer::m_pSiteUIActive

インプレースアクティブ化されているコントロール サイトへのポインター。

COleControlSite* m_pSiteUIActive;

COleControlContainer::m_pWnd

コンテナーに関連付けられているウィンドウ オブジェクトへのポインター。

CWnd* m_pWnd;

COleControlContainer::m_siteMap

サイト マップ。

CMapPtrToPtr m_siteMap;

COleControlContainer::Onペイント

WM_PAINT要求を処理するためにフレームワークによって呼び出されます。

virtual BOOL OnPaint(CDC* pDC);

パラメーター

pDC
コンテナーによって使用されるデバイス コンテキストへのポインター。

戻り値

メッセージが処理された場合は 0 以外。それ以外の場合は 0。

解説

この関数をオーバーライドして、描画プロセスをカスタマイズします。

COleControlContainer::OnUIActivate

pSite が指すコントロール サイトがインプレースでアクティブ化されようとしているときに、フレームワークによって呼び出されます。

virtual void OnUIActivate(COleControlSite* pSite);

パラメーター

pSite
インプレース アクティブ化されようとしているコントロール サイトへのポインター。

解説

インプレース アクティブ化とは、コンテナーのメイン メニューがインプレース複合メニューに置き換えられることを意味します。

COleControlContainer::OnUIDeactivate

pSite が指すコントロール サイトが非アクティブ化されるときに、フレームワークによって呼び出されます。

virtual void OnUIDeactivate(COleControlSite* pSite);

パラメーター

pSite
非アクティブ化されるコントロール サイトへのポインター。

解説

この通知を受信すると、コンテナーはユーザー インターフェイスを再インストールし、フォーカスを設定する必要があります。

COleControlContainer::ScrollChildren

スクロール メッセージが子ウィンドウから受信されたときにフレームワークによって呼び出されます。

virtual void ScrollChildren(
    int dx,
    int dy);

パラメーター

Dx
x 軸に沿ってスクロールする量 (ピクセル単位)。

dy
y 軸に沿ってスクロールする量 (ピクセル単位)。

COleControlContainer::SendDlgItemMessage

指定されたコントロールにメッセージを送信します。

virtual LRESULT SendDlgItemMessage(
    int nID,
    UINT message,
    WPARAM wParam,
    LPARAM lParam);

パラメーター

nID
メッセージを受信するコントロールの識別子を指定します。

message
送信するメッセージを指定します。

wParam
追加のメッセージ固有の情報を指定します。

lParam
追加のメッセージ固有の情報を指定します。

COleControlContainer::SetDlgItemInt

ダイアログ ボックス内のコントロールのテキストを、指定した整数値の文字列形式に設定します。

virtual void SetDlgItemInt(
    int nID,
    UINT nValue,
    BOOL bSigned);

パラメーター

nID
コントロールの識別子。

nValue
表示する整数値。

bSigned
nValue パラメーターが符号付きか符号なしかを指定します。 このパラメーターが TRUE の場合、 nValue は符号付きです。 このパラメーターが TRUE で、 nValue が 0 未満の場合は、文字列の最初の桁の前に負符号が配置されます。 このパラメーターが FAL Standard Edition の場合、nValue は符号なしです。

COleControlContainer::SetDlgItemText

lpszString に含まれるテキストを使用して、指定したコントロールのテキストを設定します。

virtual void SetDlgItemText(
    int nID,
    LPCTSTR lpszString);

パラメーター

nID
コントロールの識別子。

lpszString
コントロールのテキストへのポインター。

関連項目

CCmdTarget クラス
階層図
COleControlSite クラス
COccManager クラス