COleControlContainer クラス
ActiveX コントロールのコントロール コンテナーとして機能します。
構文
class COleControlContainer : public CCmdTarget
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
COleControlContainer::COleControlContainer | COleControlContainer オブジェクトを構築します。 |
パブリック メソッド
パブリック データ メンバー
名前 | 説明 |
---|---|
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 | サイト マップ。 |
解説
これは、( COleControlSite
によって実装される) 1 つ以上の ActiveX コントロール サイトのサポートを提供することによって行われます。 COleControlContainer
は、 IOleInPlaceFrame および IOleContainer インターフェイスを完全に実装し、含まれている ActiveX コントロールがインプレース アイテムとしての修飾を満たすことができます。
一般的に、このクラスは、1 つ以上の ActiveX コントロールのカスタム サイトを含むカスタム ActiveX コントロール コンテナーを実装するために、 COccManager
と COleControlSite
と組み合わせて使用されます。
継承階層
COleControlContainer
要件
Header: 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 スタイル。 使用可能なスタイルは、 Remarks セクションの下に一覧表示されます。
rect
コントロールのサイズと位置を指定します。 CRect
オブジェクトまたはRECT
構造体のいずれかを指定できます。
nID
コントロールの子ウィンドウ ID を指定します。
pPersist
コントロールの永続的な状態を含む CFile
へのポインター。 既定値は NULL で、永続的ストレージから状態を復元せずにコントロール自体を初期化することを示します。 NULL でない場合は、ストリームまたはストレージのいずれかの形式で、コントロールの永続データを含む CFile
派生オブジェクトへのポインターである必要があります。 このデータは、クライアントの以前のアクティブ化で保存されている可能性があります。 CFile
には他のデータを含めることができますが、読み取り/書き込みポインターは、CreateControl
の呼び出し時に永続データの最初のバイトに設定する必要があります。
bStorage
pPersistのデータをIStorage
データと解釈するか、IStream
データとして解釈するかを示します。 pPersist のデータがストレージの場合、bStorage は TRUE にする必要があります。 pPersist のデータがストリームの場合、bStorage は FALSE にする必要があります。 既定値は FALSE です。
bstrLicKey
オプションのライセンス キー データ。 このデータは、ランタイム ライセンス キーを必要とするコントロールを作成する場合にのみ必要です。 コントロールがライセンスをサポートしている場合は、コントロールの作成を成功させるためにライセンス キーを指定する必要があります。 既定値は NULL です。
ppNewSite
作成されるコントロールをホストする既存のコントロール サイトへのポインター。 既定値は NULL で、新しいコントロール サイトが自動的に作成され、新しいコントロールにアタッチされることを示します。
ppt
コントロールの左上隅を含む POINT
構造体へのポインター。 コントロールのサイズは、 psize の値によって決まります。 pptおよびpsize値は、コントロールのサイズと位置を指定するオプションのメソッドです。
psize
コントロールのサイズを含む SIZE
構造体へのポインター。 左上隅は、 ppt の値によって決まります。 pptおよびpsize値は、コントロールのサイズと位置を指定するオプションのメソッドです。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
CreateControl
では、Windows dwStyle フラグのサブセットのみがサポートされます。
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 は成功を示し、FALSE は失敗を示します)。
bSigned
関数が最初に負符号のテキストを調べ、符号付き整数値が見つかる場合に返すかどうかを指定します。 bSigned パラメーターが TRUE の場合、取得する値が符号付き整数値であることを指定し、戻り値をint
型にキャストします。 詳細なエラー情報を得るには、GetLastError を呼び出します。
戻り値
成功した場合、 lpTrans が指す変数は TRUE に設定され、戻り値はコントロール テキストの変換された値になります。
関数が失敗した場合、 lpTrans が指す変数は FALSE に設定され、戻り値は 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_SETFOCUS処理するかどうかを決定します。
virtual BOOL HandleSetFocus();
戻り値
コンテナーがメッセージWM_SETFOCUS処理する場合は 0 以外。それ以外の場合は 0。
COleControlContainer::HandleWindowlessMessage
ウィンドウレス コントロールのウィンドウ メッセージを処理します。
virtual BOOL HandleWindowlessMessage(
UINT message,
WPARAM wParam,
LPARAM lParam,
LRESULT* plResult);
パラメーター
message
Windows によって提供されるウィンドウ メッセージの識別子。
wParam
メッセージのパラメーター。Windows によって提供されます。 追加のメッセージ固有の情報を指定します。 このパラメーターの内容は、 message パラメーターの値によって異なります。
lParam
メッセージのパラメーター。Windows によって提供されます。 追加のメッセージ固有の情報を指定します。 このパラメーターの内容は、 message パラメーターの値によって異なります。
plResult
Windows の結果コード。 メッセージ処理の結果を指定し、送信されるメッセージに依存します。
戻り値
成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
ウィンドウレス コントロール メッセージの処理をカスタマイズするには、この関数をオーバーライドします。
COleControlContainer::IsDlgButtonChecked
指定したボタンの状態を決定します。
virtual UINT IsDlgButtonChecked(int nIDButton) const;
パラメーター
nIDButton
ボタン コントロールの識別子。
戻り値
BS_AUTOCHECKBOX、BS_AUTORADIOBUTTON、BS_AUTO3STATE、BS_CHECKBOX、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::OnPaint
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 未満の場合は、文字列の最初の桁の前に負符号が配置されます。 このパラメーターが FALSE の場合、 nValue は符号なしになります。
COleControlContainer::SetDlgItemText
lpszString に含まれるテキストを使用して、指定したコントロールのテキストを設定します。
virtual void SetDlgItemText(
int nID,
LPCTSTR lpszString);
パラメーター
nID
コントロールの識別子。
lpszString
コントロールのテキストへのポインター。