CComControlBase クラス

このクラスには、ATL コントロールを作成および管理するためのメソッドが用意されています。

重要

このクラスとそのメンバーは、Windows ランタイムで実行するアプリケーションで使用することはできません。

構文

class ATL_NO_VTABLE CComControlBase

メンバー

パブリック typedef

名前 説明
CComControlBase::AppearanceType m_nAppearance ストック プロパティが short 型ではない場合は、オーバーライドします。

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

名前 説明
CComControlBase::CComControlBase コンストラクター。
CComControlBase::~CComControlBase デストラクター。

パブリック メソッド

名前 説明
CComControlBase::ControlQueryInterface 要求されたインターフェイスへのポインターを取得します。
CComControlBase::DoesVerbActivate IOleObjectImpl::DoVerb によって使用される iVerb パラメーターが、コントロールのユーザー インターフェイスをアクティブ化するか (iVerb は OLEIVERB_UIACTIVATE と等しい)、ユーザーがコントロールをダブルクリックした場合に取られるアクションを定義するか (iVerb は OLEIVERB_PRIMARY と等しい)、コントロールを表示するか (iVerb は OLEIVERB_SHOW と等しい)、コントロールをアクティブ化するか (iVerb は OLEIVERB_INPLACEACTIVATE と等しい) をチェックします。
CComControlBase::DoesVerbUIActivate IOleObjectImpl::DoVerb によって使用される iVerb パラメーターによって、コントロールのユーザー インターフェイスがアクティブ化され、TRUE が返されることを確認します。
CComControlBase::DoVerbProperties コントロールのプロパティ ページを表示します。
CComControlBase::FireViewChange このメソッドを呼び出して、コンテナーにコントロールを再描画するよう伝えるか、登録済みのアドバイス シンクにコントロールのビューが変更されたことを通知します。
CComControlBase::GetAmbientAppearance コントロールの現在の外観設定 (フラットの場合は 0、3D の場合は 1) である DISPID_AMBIENT_APPEARANCE を取得します。
CComControlBase::GetAmbientAutoClip コンテナーでコントロールの表示領域の自動クリッピングをサポートするかどうかを示すフラグである DISPID_AMBIENT_AUTOCLIP を取得します。
CComControlBase::GetAmbientBackColor コンテナーによって定義されている、すべてのコントロールのアンビエント背景色である DISPID_AMBIENT_BACKCOLOR を取得します。
CComControlBase::GetAmbientCharSet コンテナーによって定義されている、すべてのコントロールのアンビエント文字セットである DISPID_AMBIENT_CHARSET を取得します。
CComControlBase::GetAmbientCodePage コンテナーによって定義されている、すべてのコントロールのアンビエント文字セットである DISPID_AMBIENT_CODEPAGE を取得します。
CComControlBase::GetAmbientDisplayAsDefault コンテナーで、このサイトのコントロールが既定のボタンとしてマークされた場合に TRUE となるフラグである DISPID_AMBIENT_DISPLAYASDEFAULT を取得します。そのため、ボタン コントロールはそれ自体が太線のフレームで描画される必要があります。
CComControlBase::GetAmbientDisplayName コンテナーでコントロールに指定した名前である DISPID_AMBIENT_DISPLAYNAME を取得します。
CComControlBase::GetAmbientFont コンテナーのアンビエント IFont インターフェイスへのポインターを取得します。
CComControlBase::GetAmbientFontDisp コンテナーのアンビエント IFontDisp ディスパッチ インターフェイスへのポインターを取得します。
CComControlBase::GetAmbientForeColor コンテナーによって定義されている、すべてのコントロールのアンビエント前景色である DISPID_AMBIENT_FORECOLOR を取得します。
CComControlBase::GetAmbientLocaleID コンテナーによって使用される言語の識別子である DISPID_AMBIENT_LOCALEID を取得します。
CComControlBase::GetAmbientMessageReflect コンテナーでウィンドウ メッセージ (WM_DRAWITEM など) をイベントとして受け取るかどうかを示すフラグである DISPID_AMBIENT_MESSAGEREFLECT を取得します。
CComControlBase::GetAmbientPalette コンテナーの HPALETTE にアクセスするために使用される DISPID_AMBIENT_PALETTE を取得します。
CComControlBase::GetAmbientProperty id で指定されたコンテナー プロパティを取得します。
CComControlBase::GetAmbientRightToLeft コンテナーによって表示されるコンテンツの向きである DISPID_AMBIENT_RIGHTTOLEFT を取得します。
CComControlBase::GetAmbientScaleUnits ディスプレイのラベル付けのためにコンテナーのアンビエント単位 (インチやセンチなど) である DISPID_AMBIENT_SCALEUNITS を取得します。
CComControlBase::GetAmbientShowGrabHandles コンテナーで、コントロールがアクティブなときにそれ自体のグラブ ハンドルを表示できるかどうかを示すフラグである DISPID_AMBIENT_SHOWGRABHANDLES を取得します。
CComControlBase::GetAmbientShowHatching UI がアクティブなときに、コンテナーによってハッチ パターンを使用してコントロールがそれ自体を表示できるかどうかを示すフラグである DISPID_AMBIENT_SHOWHATCHING を取得します。
CComControlBase::GetAmbientSupportsMnemonics コンテナーでキーボード ニーモニックをサポートするかどうかを示すフラグである DISPID_AMBIENT_SUPPORTSMNEMONICS を取得します。
CComControlBase::GetAmbientTextAlign コンテナーで優先されるテキスト配置である DISPID_AMBIENT_TEXTALIGN を取得します。一般的な配置 (右に数値、左にテキスト) の場合は 0、左揃えの場合は 1、中央揃えの場合は 2、右揃えの場合は 3 です。
CComControlBase::GetAmbientTopToBottom コンテナーによって表示されるコンテンツの向きである DISPID_AMBIENT_TOPTOBOTTOM を取得します。
CComControlBase::GetAmbientUIDead コンテナーがコントロールでユーザー インターフェイス アクションに応答させるかどうかを示すフラグである DISPID_AMBIENT_UIDEAD を取得します。
CComControlBase::GetAmbientUserMode コンテナーが実行モード (TRUE) かデザイン モード (FALSE) かを示すフラグである DISPID_AMBIENT_USERMODE を取得します。
CComControlBase::GetDirty データ メンバー m_bRequiresSave の値を返します。
CComControlBase::GetZoomInfo インプレース編集用にアクティブ化されたコントロールのズーム ファクターの分子と分母の x と y の値を取得します。
CComControlBase::InPlaceActivate コントロールを非アクティブ状態から iVerb の動詞が示す状態に遷移します。
CComControlBase::InternalGetSite このメソッドを呼び出して、識別されたインターフェイスへのポインターをコントロール サイトにクエリします。
CComControlBase::OnDraw コントロールを描画するには、このメソッドをオーバーライドします。
CComControlBase::OnDrawAdvanced 既定の OnDrawAdvanced では、描画用に正規化されたデバイス コンテキストが準備され、コントロール クラスの OnDraw メソッドが呼び出されます。
CComControlBase::OnKillFocus コントロールがインプレース アクティブであり、有効なコントロール サイトを持っている場合は、コントロールがフォーカスを失ったことをコンテナーに通知します。
CComControlBase::OnMouseActivate UI がユーザー モードであるか確認し、コントロールをアクティブにします。
CComControlBase::OnPaint コンテナーで描画の準備を行い、コントロールのクライアント領域を取得してから、コントロール クラスの OnDraw メソッドを呼び出します。
CComControlBase::OnSetFocus コントロールがインプレース アクティブであり、有効なコントロール サイトを持っている場合は、コントロールがフォーカスを取得したとコンテナーに通知します。
CComControlBase::PreTranslateAccelerator 独自のキーボード アクセラレータ ハンドラーを提供するには、このメソッドをオーバーライドします。
CComControlBase::SendOnClose コントロールが閉じられたことを、アドバイス ホルダーに登録されているすべてのアドバイザリ シンクに通知します。
CComControlBase::SendOnDataChange コントロール データが変更されたことを、アドバイス ホルダーに登録されているすべてのアドバイザリ シンクに通知します。
CComControlBase::SendOnRename コントロールに新しいモニカーがあることを、アドバイス ホルダーに登録されているすべてのアドバイザリ シンクに通知します。
CComControlBase::SendOnSave コントロールが保存されたことを、アドバイス ホルダーに登録されているすべてのアドバイザリ シンクに通知します。
CComControlBase::SendOnViewChange 登録済みのすべてのアドバイザリ シンクに、コントロールのビューが変更されたことを通知します。
CComControlBase::SetControlFocus コントロールとの間でキーボード フォーカスを設定または削除します。
CComControlBase::SetDirty データ メンバー m_bRequiresSave を、bDirty の値に設定します。

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

名前 説明
CComControlBase::m_bAutoSize コントロールを他のサイズにできないことを示すフラグ。
CComControlBase::m_bDrawFromNatural IDataObjectImpl::GetDataCComControlBase::GetZoomInfo が、m_sizeExtent からではなく m_sizeNatural からコントロール サイズを設定する必要があることを示すフラグ。
CComControlBase::m_bDrawGetDataInHimetric IDataObjectImpl::GetData で描画時にピクセルではなく HIMETRIC 単位を使用する必要があることを示すフラグ。
CComControlBase::m_bInPlaceActive コントロールがインプレース アクティブであることを示すフラグ。
CComControlBase::m_bInPlaceSiteEx コンテナーで IOleInPlaceSiteEx インターフェイスと、ウィンドウなしやちらつきのないコントロールなどの OCX96 コントロール機能をサポートすることを示すフラグ。
CComControlBase::m_bNegotiatedWnd コントロールがコンテナーと OCX96 コントロール機能 (ちらつきのないコントロールやウィンドウなしのコントロールなど) のサポートと、コントロールがウィンドウ表示かウィンドウなしかについてネゴシエートしたかどうかを示すフラグ。
CComControlBase::m_bRecomposeOnResize コンテナーがコントロールの表示サイズを変更するときに、コントロールが表示を再構成する必要があることを示すフラグ。
CComControlBase::m_bRequiresSave コントロールが最後に保存された後に変更されたことを示すフラグ。
CComControlBase::m_bResizeNatural コンテナーがコントロールの表示サイズを変更するときに、コントロールが自然な範囲 (スケーリングされていない物理サイズ) のサイズを変更する必要があることを示すフラグ。
CComControlBase::m_bUIActive メニューやツール バーなど、コントロールのユーザー インターフェイスがアクティブであることを示すフラグ。
CComControlBase::m_bUsingWindowRgn コントロールがコンテナー指定のウィンドウ領域を使用していることを示すフラグ。
CComControlBase::m_bWasOnceWindowless コントロールがウィンドウなしであるが、現在ウィンドウなしではない可能性があることを示すフラグ。
CComControlBase::m_bWindowOnly コンテナーがウィンドウなしのコントロールをサポートしている場合でも、コントロールをウィンドウ表示にする必要があることを示すフラグ。
CComControlBase::m_bWndLess コントロールがウィンドウなしであることを示すフラグ。
CComControlBase::m_hWndCD コントロールに関連付けられたウィンドウ ハンドルへの参照を格納します。
CComControlBase::m_nFreezeEvents イベントの凍結解除 (イベントの受け入れ) を間に入れることなく、コンテナーがイベントを凍結 (イベントの受け入れを拒否) した回数。
CComControlBase::m_rcPos コントロールのピクセル単位の位置。コンテナーの座標で表されます。
CComControlBase::m_sizeExtent HIMETRIC 単位 (各単位は 0.01 mm) での特定のディスプレイのコントロールの範囲。
CComControlBase::m_sizeNatural HIMETRIC 単位 (各単位は 0.01 mm) でのコントロールの物理サイズ。
CComControlBase::m_spAdviseSink コンテナー (コンテナーの IAdviseSink) のアドバイザリ接続への直接ポインター。
CComControlBase::m_spAmbientDispatch IDispatch ポインターを使用してコンテナーのプロパティを取得および設定できる CComDispatchDriver オブジェクト。
CComControlBase::m_spClientSite コンテナー内のコントロールのクライアント サイトへのポインター。
CComControlBase::m_spDataAdviseHolder データ オブジェクトとアドバイス シンク間のアドバイザリ接続を保持する標準的な手段を提供します。
CComControlBase::m_spInPlaceSite コンテナーの IOleInPlaceSiteIOleInPlaceSiteEx、または IOleInPlaceSiteWindowless インターフェイス ポインターへのポインター。
CComControlBase::m_spOleAdviseHolder アドバイザリ接続を保持するための標準的な実装を提供します。

解説

このクラスには、ATL コントロールを作成および管理するためのメソッドが用意されています。 CComControl クラスCComControlBase から派生します。 ATL コントロール ウィザードを使用して標準コントロールまたは DHTML コントロールを作成すると、CComControlBase からクラスが自動的に派生します。

コントロールの作成の詳細については、ATL チュートリアルを参照してください。 ATL プロジェクト ウィザードの詳細については、「ATL プロジェクトの作成」を参照してください。

必要条件

ヘッダー: atlctl.h

CComControlBase::AppearanceType

m_nAppearance ストック プロパティが short 型ではない場合は、オーバーライドします。

typedef short AppearanceType;

解説

ATL コントロール ウィザードによって、short 型の m_nAppearance ストック プロパティが追加されます。 別のデータ型を使用する場合は、AppearanceType をオーバーライドします。

CComControlBase::CComControlBase

コンストラクター。

CComControlBase(HWND& h);

パラメーター


コントロールに関連付けられたウィンドウへのハンドル。

解説

コントロール サイズを 5080 x 5080 HIMETRIC 単位 (2 x 2 インチ) に初期化し、CComControlBase データ メンバー値を NULL または FALSE に初期化します。

CComControlBase::~CComControlBase

デストラクター。

~CComControlBase();

解説

コントロールがウィンドウ表示されている場合は、DestroyWindow を呼び出すことによって ~CComControlBase によって破棄されます。

CComControlBase::ControlQueryInterface

要求されたインターフェイスへのポインターを取得します。

virtual HRESULT ControlQueryInterface(const IID& iid,
    void** ppv);

パラメーター

iid
要求されているインターフェイスの GUID。

ppv
iid で識別されるインターフェイス ポインターへのポインター。インターフェイスが見つからない場合は NULL。

解説

COM マップ テーブル内のインターフェイスのみが処理されます。

// Retrieve the control's IOleObject interface. Note interface 
// is automatically released when pOleObject goes out of scope

CComPtr<IOleObject> pOleObject;
ControlQueryInterface(IID_IOleObject, (void**)&pOleObject);

CComControlBase::DoesVerbActivate

IOleObjectImpl::DoVerb によって使用される iVerb パラメーターが、コントロールのユーザー インターフェイスをアクティブ化するか (iVerb は OLEIVERB_UIACTIVATE と等しい)、ユーザーがコントロールをダブルクリックした場合に取られるアクションを定義するか (iVerb は OLEIVERB_PRIMARY と等しい)、コントロールを表示するか (iVerb は OLEIVERB_SHOW と等しい)、コントロールをアクティブ化するか (iVerb は OLEIVERB_INPLACEACTIVATE と等しい) をチェックします。

BOOL DoesVerbActivate(LONG iVerb);

パラメーター

iVerb
DoVerb によって実行されるアクションを示す値。

戻り値

iVerb が OLEIVERB_UIACTIVATE、OLEIVERB_PRIMARY、OLEIVERB_SHOW、OLEIVERB_INPLACEACTIVATE と等しい場合に TRUE を返します。それ以外の場合は FALSE を返します。

解説

このメソッドをオーバーライドして、独自のアクティブ化動詞を定義できます。

CComControlBase::DoesVerbUIActivate

IOleObjectImpl::DoVerb によって使用される iVerb パラメーターによって、コントロールのユーザー インターフェイスがアクティブ化され、TRUE が返されることを確認します。

BOOL DoesVerbUIActivate(LONG iVerb);

パラメーター

iVerb
DoVerb によって実行されるアクションを示す値。

戻り値

iVerb が OLEIVERB_UIACTIVATE、OLEIVERB_PRIMARY、OLEIVERB_SHOW、OLEIVERB_INPLACEACTIVATE と等しい場合に TRUE を返します。 それ以外の場合、メソッドは FALSE を返します。

CComControlBase::DoVerbProperties

コントロールのプロパティ ページを表示します。

HRESULT DoVerbProperties(LPCRECT /* prcPosRect */, HWND hwndParent);

パラメーター

prcPosRec
予約済み。

hwndParent
コントロールを含むウィンドウのハンドル。

戻り値

標準 HRESULT 値のいずれか。

// The following implementation of the WM_RBUTTONDOWN message handler
// will pop up the ActiveX Control's PropertyPages 
LRESULT CMyComposite::OnRButtonDown(UINT /*uMsg*/, WPARAM /*wParam*/, 
   LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
   DoVerbProperties(NULL, ::GetActiveWindow());
   return 0L;
}

 

MESSAGE_HANDLER(WM_RBUTTONDOWN, OnRButtonDown)

CComControlBase::FireViewChange

このメソッドを呼び出して、コンテナーにコントロールを再描画するよう伝えるか、登録済みのアドバイス シンクにコントロールのビューが変更されたことを通知します。

HRESULT FireViewChange();

戻り値

標準 HRESULT 値のいずれか。

解説

コントロールがアクティブな場合 (コントロール クラスのデータ メンバー CComControlBase::m_bInPlaceActive が TRUE) は、コントロール全体を再描画するようコンテナーに通知します。 コントロールが非アクティブな場合は、コントロールの登録済みのアドバイス シンク (コントロール クラスのデータ メンバー CComControlBase::m_spAdviseSink を介して) に、コントロールのビューが変更されたことを通知します。

STDMETHODIMP CMyControl::put_Shape(int newVal)
{
   // store newVal in m_nShape user-defined member
   m_nShape = newVal;

   // notify container to redraw control
   FireViewChange();
   return S_OK;
}

CComControlBase::GetAmbientAppearance

コントロールの現在の外観設定 (フラットの場合は 0、3D の場合は 1) である DISPID_AMBIENT_APPEARANCE を取得します。

HRESULT GetAmbientAppearance(short& nAppearance);

パラメーター

nAppearance
プロパティ DISPID_AMBIENT_APPEARANCE。

戻り値

標準 HRESULT 値のいずれか。

HRESULT OnDraw(ATL_DRAWINFO& di)
{
   short nAppearance;
   RECT& rc = *(RECT*)di.prcBounds;

   // draw 3D border if AmbientAppearance is not supported or is set to 1 
   HRESULT hr = GetAmbientAppearance(nAppearance);
   if (hr != S_OK || nAppearance==1)
   {
      DrawEdge(di.hdcDraw, &rc, EDGE_SUNKEN, BF_RECT);
   }
   else
   {
      Rectangle(di.hdcDraw, rc.left, rc.top, rc.right, rc.bottom);
   }

   SetTextAlign(di.hdcDraw, TA_CENTER|TA_BASELINE);
   LPCTSTR pszText = _T("ATL 8.0 : MyControl");

   // For security reasons, we recommend that you use the lstrlen function
   // with caution. Here, we can guarantee that pszText is NULL terminated,
   // and therefore it is safe to use this function.
   TextOut(di.hdcDraw, 
      (rc.left + rc.right) / 2, 
      (rc.top + rc.bottom) / 2, 
      pszText, 
      lstrlen(pszText));

   return S_OK;
}

CComControlBase::GetAmbientAutoClip

コンテナーでコントロールの表示領域の自動クリッピングをサポートするかどうかを示すフラグである DISPID_AMBIENT_AUTOCLIP を取得します。

HRESULT GetAmbientAutoClip(BOOL& bAutoClip);

パラメーター

bAutoClip
プロパティ DISPID_AMBIENT_AUTOCLIP。

戻り値

標準 HRESULT 値のいずれか。

CComControlBase::GetAmbientBackColor

コンテナーによって定義されている、すべてのコントロールのアンビエント背景色である DISPID_AMBIENT_BACKCOLOR を取得します。

HRESULT GetAmbientBackColor(OLE_COLOR& BackColor);

パラメーター

BackColor
プロパティ DISPID_AMBIENT_BACKCOLOR。

戻り値

標準 HRESULT 値のいずれか。

CComControlBase::GetAmbientCharSet

コンテナーによって定義されている、すべてのコントロールのアンビエント文字セットである DISPID_AMBIENT_CHARSET を取得します。

HRESULT GetAmbientCharSet(BSTR& bstrCharSet);

パラメーター

bstrCharSet
プロパティ DISPID_AMBIENT_CHARSET。

戻り値

成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。

CComControlBase::GetAmbientCodePage

コンテナーによって定義されている、すべてのコントロールのアンビエント コード ページである DISPID_AMBIENT_CODEPAGE を取得します。

HRESULT GetAmbientCodePage(ULONG& ulCodePage);

パラメーター

ulCodePage
プロパティ DISPID_AMBIENT_CODEPAGE。

戻り値

成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。

CComControlBase::GetAmbientDisplayAsDefault

コンテナーで、このサイトのコントロールが既定のボタンとしてマークされた場合に TRUE となるフラグである DISPID_AMBIENT_DISPLAYASDEFAULT を取得します。そのため、ボタン コントロールはそれ自体が太線のフレームで描画される必要があります。

HRESULT GetAmbientDisplayAsDefault(BOOL& bDisplayAsDefault);

パラメーター

bDisplayAsDefault
プロパティ DISPID_AMBIENT_DISPLAYASDEFAULT。

戻り値

標準 HRESULT 値のいずれか。

CComControlBase::GetAmbientDisplayName

コンテナーでコントロールに指定した名前である DISPID_AMBIENT_DISPLAYNAME を取得します。

HRESULT GetAmbientDisplayName(BSTR& bstrDisplayName);

パラメーター

bstrDisplayName
プロパティ DISPID_AMBIENT_DISPLAYNAME。

戻り値

標準 HRESULT 値のいずれか。

CComControlBase::GetAmbientFont

コンテナーのアンビエント IFont インターフェイスへのポインターを取得します。

HRESULT GetAmbientFont(IFont** ppFont);

パラメーター

ppFont
コンテナーのアンビエント IFont インターフェイスへのポインター。

戻り値

標準 HRESULT 値のいずれか。

解説

プロパティが NULL の場合、ポインターは NULL です。 ポインターが NULL ではない場合、呼び出し元はポインターを解放する必要があります。

CComControlBase::GetAmbientFontDisp

コンテナーのアンビエント IFontDisp ディスパッチ インターフェイスへのポインターを取得します。

HRESULT GetAmbientFontDisp(IFontDisp** ppFont);

パラメーター

ppFont
コンテナーのアンビエント IFontDisp ディスパッチ インターフェイスへのポインター。

戻り値

成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。

解説

プロパティが NULL の場合、ポインターは NULL です。 ポインターが NULL ではない場合、呼び出し元はポインターを解放する必要があります。

CComControlBase::GetAmbientForeColor

コンテナーによって定義されている、すべてのコントロールのアンビエント前景色である DISPID_AMBIENT_FORECOLOR を取得します。

HRESULT GetAmbientForeColor(OLE_COLOR& ForeColor);

パラメーター

ForeColor
プロパティ DISPID_AMBIENT_FORECOLOR。

戻り値

標準 HRESULT 値のいずれか。

CComControlBase::GetAmbientLocaleID

コンテナーによって使用される言語の識別子である DISPID_AMBIENT_LOCALEID を取得します。

HRESULT GetAmbientLocaleID(LCID& lcid);

パラメーター

lcid
プロパティ DISPID_AMBIENT_LOCALEID。

戻り値

標準 HRESULT 値のいずれか。

解説

コントロールでは、この識別子を使用して、そのユーザー インターフェイスをさまざまな言語に適応させることができます。

CComControlBase::GetAmbientMessageReflect

コンテナーでウィンドウ メッセージ (WM_DRAWITEM など) をイベントとして受け取るかどうかを示すフラグである DISPID_AMBIENT_MESSAGEREFLECT を取得します。

HRESULT GetAmbientMessageReflect(BOOL& bMessageReflect);

パラメーター

bMessageReflect
プロパティ DISPID_AMBIENT_MESSAGEREFLECT。

戻り値

標準 HRESULT 値のいずれか。

CComControlBase::GetAmbientPalette

コンテナーの HPALETTE にアクセスするために使用される DISPID_AMBIENT_PALETTE を取得します。

HRESULT GetAmbientPalette(HPALETTE& hPalette);

パラメーター

hPalette
プロパティ DISPID_AMBIENT_PALETTE。

戻り値

標準 HRESULT 値のいずれか。

CComControlBase::GetAmbientProperty

dispid で指定されたコンテナー プロパティを取得します。

HRESULT GetAmbientProperty(DISPID dispid, VARIANT& var);

パラメーター

dispid
取得するコンテナー プロパティの識別子。

var
プロパティを受け取るための変数。

戻り値

標準 HRESULT 値のいずれか。

解説

ATL には、特定のプロパティ (CComControlBase::GetAmbientBackColor など) を取得するヘルパー関数のセットが用意されています。 使用可能な適切なメソッドがない場合は、GetAmbientProperty を使用します。

CComControlBase::GetAmbientRightToLeft

コンテナーによって表示されるコンテンツの向きである DISPID_AMBIENT_RIGHTTOLEFT を取得します。

HRESULT GetAmbientRightToLeft(BOOL& bRightToLeft);

パラメーター

bRightToLeft
プロパティ DISPID_AMBIENT_RIGHTTOLEFT。 コンテンツを右から左に表示する場合は TRUE、左から右に表示する場合は FALSE に設定します。

戻り値

成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。

CComControlBase::GetAmbientScaleUnits

ディスプレイのラベル付けのためにコンテナーのアンビエント単位 (インチやセンチなど) である DISPID_AMBIENT_SCALEUNITS を取得します。

HRESULT GetAmbientScaleUnits(BSTR& bstrScaleUnits);

パラメーター

bstrScaleUnits
プロパティ DISPID_AMBIENT_SCALEUNITS。

戻り値

標準 HRESULT 値のいずれか。

CComControlBase::GetAmbientShowGrabHandles

コンテナーで、コントロールがアクティブなときにそれ自体のグラブ ハンドルを表示できるかどうかを示すフラグである DISPID_AMBIENT_SHOWGRABHANDLES を取得します。

HRESULT GetAmbientShowGrabHandles(BOOL& bShowGrabHandles);

パラメーター

bShowGrabHandles
プロパティ DISPID_AMBIENT_SHOWGRABHANDLES。

戻り値

標準 HRESULT 値のいずれか。

CComControlBase::GetAmbientShowHatching

コントロールのユーザー インターフェイスがアクティブなときに、コンテナーによってハッチ パターンを使用してコントロールがそれ自体を表示できるかどうかを示すフラグである DISPID_AMBIENT_SHOWHATCHING を取得します。

HRESULT GetAmbientShowHatching(BOOL& bShowHatching);

パラメーター

bShowHatching
プロパティ DISPID_AMBIENT_SHOWHATCHING。

戻り値

標準 HRESULT 値のいずれか。

CComControlBase::GetAmbientSupportsMnemonics

コンテナーでキーボード ニーモニックをサポートするかどうかを示すフラグである DISPID_AMBIENT_SUPPORTSMNEMONICS を取得します。

HRESULT GetAmbientSupportsMnemonics(BOOL& bSupportsMnemonics);

パラメーター

bSupportsMnemonics
プロパティ DISPID_AMBIENT_SUPPORTSMNEMONICS。

戻り値

標準 HRESULT 値のいずれか。

CComControlBase::GetAmbientTextAlign

コンテナーで優先されるテキスト配置である DISPID_AMBIENT_TEXTALIGN を取得します。一般的な配置 (右に数値、左にテキスト) の場合は 0、左揃えの場合は 1、中央揃えの場合は 2、右揃えの場合は 3 です。

HRESULT GetAmbientTextAlign(short& nTextAlign);

パラメーター

nTextAlign
プロパティ DISPID_AMBIENT_TEXTALIGN。

戻り値

標準 HRESULT 値のいずれか。

CComControlBase::GetAmbientTopToBottom

コンテナーによって表示されるコンテンツの向きである DISPID_AMBIENT_TOPTOBOTTOM を取得します。

HRESULT GetAmbientTopToBottom(BOOL& bTopToBottom);

パラメーター

bTopToBottom
プロパティ DISPID_AMBIENT_TOPTOBOTTOM。 テキストを上から下に表示する場合は TRUE、下から上に表示する場合は FALSE に設定します。

戻り値

成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。

CComControlBase::GetAmbientUIDead

コンテナーがコントロールでユーザー インターフェイス アクションに応答させるかどうかを示すフラグである DISPID_AMBIENT_UIDEAD を取得します。

HRESULT GetAmbientUIDead(BOOL& bUIDead);

パラメーター

bUIDead
プロパティ DISPID_AMBIENT_UIDEAD。

戻り値

標準 HRESULT 値のいずれか。

解説

TRUE の場合、コントロールは応答しない必要があります。 このフラグは、DISPID_AMBIENT_USERMODE フラグに関係なく適用されます。 CComControlBase::GetAmbientUserMode を参照してください。

CComControlBase::GetAmbientUserMode

コンテナーが実行モード (TRUE) かデザイン モード (FALSE) かを示すフラグである DISPID_AMBIENT_USERMODE を取得します。

HRESULT GetAmbientUserMode(BOOL& bUserMode);

パラメーター

bUserMode
プロパティ DISPID_AMBIENT_USERMODE。

戻り値

標準 HRESULT 値のいずれか。

CComControlBase::GetDirty

データ メンバー m_bRequiresSave の値を返します。

BOOL GetDirty();

戻り値

データ メンバー m_bRequiresSave の値を返します。

解説

この値は、CComControlBase::SetDirty を使用して設定されます。

CComControlBase::GetZoomInfo

インプレース編集用にアクティブ化されたコントロールのズーム ファクターの分子と分母の x と y の値を取得します。

void GetZoomInfo(ATL_DRAWINFO& di);

パラメーター

ディ
ズーム ファクターの分子と分母を保持する構造体。 詳細については、ATL_DRAWINFO に関するページを参照してください。

解説

ズーム ファクターは、コントロールの現在の範囲に対する自然なサイズの割合です。

CComControlBase::InPlaceActivate

コントロールを非アクティブ状態から iVerb の動詞が示す状態に遷移します。

HRESULT InPlaceActivate(LONG iVerb, const RECT* prcPosRect = NULL);

パラメーター

iVerb
IOleObjectImpl::DoVerb によって実行されるアクションを示す値。

prcPosRect
インプレース コントロールの位置へのポインター。

戻り値

標準 HRESULT 値のいずれか。

解説

アクティブ化する前に、このメソッドは、コントロールにクライアント サイトが含まれるか確認し、どのぐらいコントロールが表示されているかを確認し、親ウィンドウでコントロールの位置を取得します。 コントロールがアクティブ化されると、このメソッドはコントロールのユーザー インターフェイスをアクティブ化し、コントロールを表示するようコンテナーに指示します。

このメソッドは、コントロールの IOleInPlaceSiteIOleInPlaceSiteEx、または IOleInPlaceSiteWindowless インターフェイス ポインターも取得し、コントロール クラスのデータ メンバー CComControlBase::m_spInPlaceSite に格納します。 コントロール クラスのデータ メンバー CComControlBase::m_bInPlaceSiteExCComControlBase::m_bWndLessCComControlBase::m_bWasOnceWindowless、および CComControlBase::m_bNegotiatedWnd は、必要に応じて true に設定されます。

CComControlBase::InternalGetSite

このメソッドを呼び出して、識別されたインターフェイスへのポインターをコントロール サイトにクエリします。

HRESULT InternalGetSite(REFIID riid, void** ppUnkSite);

パラメーター

riid
ppUnkSite で返される必要のあるインターフェイス ポインターの IID。

ppUnkSite
riid で要求されたインターフェイス ポインターを受け取るポインター変数のアドレス。

戻り値

成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。

解説

サイトが riid で要求されたインターフェイスをサポートしている場合は、ppUnkSite を使用してポインターが返されます。 それ以外の場合、ppUnkSite は NULL に設定されます。

CComControlBase::m_bAutoSize

コントロールを他のサイズにできないことを示すフラグ。

unsigned m_bAutoSize:1;

解説

このフラグは IOleObjectImpl::SetExtent によってチェックされ、TRUE の場合、関数は E_FAIL を返します。

Note

コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。

ATL コントロール ウィザードの [ストック プロパティ] タブで [自動サイズ調整] オプションを追加すると、ウィザードにより、このデータ メンバーが自動的にコントロール クラスに作成され、プロパティの put および get メソッドが作成され、IPropertyNotifySink がサポートされ、プロパティが変更されたときにコンテナーに自動的に通知されます。

CComControlBase::m_bDrawFromNatural

IDataObjectImpl::GetDataCComControlBase::GetZoomInfo が、m_sizeExtent からではなく m_sizeNatural からコントロール サイズを設定する必要があることを示すフラグ。

unsigned m_bDrawFromNatural:1;

解説

Note

コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。

CComControlBase::m_bDrawGetDataInHimetric

IDataObjectImpl::GetData で描画時にピクセルではなく HIMETRIC 単位を使用する必要があることを示すフラグ。

unsigned m_bDrawGetDataInHimetric:1;

解説

各論理 HIMETRIC 単位は 0.01 mm です。

Note

コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。

CComControlBase::m_bInPlaceActive

コントロールがインプレース アクティブであることを示すフラグ。

unsigned m_bInPlaceActive:1;

解説

これは、コントロールが表示可能で、そのウィンドウ (ある場合) は表示可能ですが、そのメニューとツール バーがアクティブではない可能性があることを意味します。 m_bUIActive フラグは、メニューなどのコントロールのユーザー インターフェイスもアクティブであることを示します。

Note

コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。

CComControlBase::m_bInPlaceSiteEx

コンテナーで IOleInPlaceSiteEx インターフェイスと、ウィンドウなしやちらつきのないコントロールなどの OCX96 コントロール機能をサポートすることを示すフラグ。

unsigned m_bInPlaceSiteEx:1;

解説

Note

コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。

m_bWndLess および m_bInPlaceSiteEx フラグの値に応じて、データ メンバー m_spInPlaceSiteIOleInPlaceSiteIOleInPlaceSiteEx、または IOleInPlaceSiteWindowless インターフェイスを指します。 (m_spInPlaceSite ポインターを有効にするには、データ メンバー m_bNegotiatedWnd が TRUE である必要があります。)

m_bWndLess が FALSE で m_bInPlaceSiteEx が TRUE の場合、m_spInPlaceSiteIOleInPlaceSiteEx インターフェイス ポインターです。 これら 3 つのデータ メンバー間のリレーションシップを示す表については、m_spInPlaceSite を参照してください。

CComControlBase::m_bNegotiatedWnd

コントロールがコンテナーと OCX96 コントロール機能 (ちらつきのないコントロールやウィンドウなしのコントロールなど) のサポートと、コントロールがウィンドウ表示かウィンドウなしかについてネゴシエートしたかどうかを示すフラグ。

unsigned m_bNegotiatedWnd:1;

解説

Note

コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。

m_spInPlaceSite ポインターを有効にするには、m_bNegotiatedWnd フラグが TRUE である必要があります。

CComControlBase::m_bRecomposeOnResize

コンテナーがコントロールの表示サイズを変更するときに、コントロールが表示を再構成する必要があることを示すフラグ。

unsigned m_bRecomposeOnResize:1;

解説

Note

コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。

このフラグは IOleObjectImpl::SetExtent によってチェックされ、TRUE の場合は、SetExtent によってビューの変更がコンテナーに通知されます。 このフラグが設定されている場合は、OLEMISC 列挙体の OLEMISC_RECOMPOSEONRESIZE ビットも設定する必要があります。

CComControlBase::m_bRequiresSave

コントロールが最後に保存された後に変更されたことを示すフラグ。

unsigned m_bRequiresSave:1;

解説

m_bRequiresSave の値は CComControlBase::SetDirty で設定でき、CComControlBase::GetDirty を使用して取得できます。

Note

コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。

CComControlBase::m_bResizeNatural

コンテナーがコントロールの表示サイズを変更するときに、コントロールが自然な範囲 (スケーリングされていない物理サイズ) のサイズを変更する必要があることを示すフラグ。

unsigned m_bResizeNatural:1;

解説

このフラグは IOleObjectImpl::SetExtent によってチェックされ、TRUE の場合、SetExtent に渡されるサイズが m_sizeNatural に割り当てられます。

SetExtent に渡されるサイズは、m_bResizeNatural の値に関係なく、常に m_sizeExtent に割り当てられます。

Note

コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。

CComControlBase::m_bUIActive

メニューやツール バーなど、コントロールのユーザー インターフェイスがアクティブであることを示すフラグ。

unsigned m_bUIActive:1;

解説

m_bInPlaceActive フラグは、コントロールがアクティブであることを示しますが、そのユーザーインターフェイスがアクティブであることは示しません。

Note

コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。

CComControlBase::m_bUsingWindowRgn

コントロールがコンテナー指定のウィンドウ領域を使用していることを示すフラグ。

unsigned m_bUsingWindowRgn:1;

解説

Note

コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。

CComControlBase::m_bWasOnceWindowless

コントロールがウィンドウなしであるが、現在ウィンドウなしではない可能性があることを示すフラグ。

unsigned m_bWasOnceWindowless:1;

解説

Note

コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。

CComControlBase::m_bWindowOnly

コンテナーがウィンドウなしのコントロールをサポートしている場合でも、コントロールをウィンドウ表示にする必要があることを示すフラグ。

unsigned m_bWindowOnly:1;

解説

Note

コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。

CComControlBase::m_bWndLess

コントロールがウィンドウなしであることを示すフラグ。

unsigned m_bWndLess:1;

解説

Note

コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。

m_bWndLess および CComControlBase::m_bInPlaceSiteEx フラグの値に応じて、データ メンバー m_spInPlaceSiteIOleInPlaceSiteIOleInPlaceSiteEx、または IOleInPlaceSiteWindowless インターフェイスを指します。 (CComControlBase::m_spInPlaceSite ポインターが有効であるためには、データメンバー CComControlBase::m_bNegotiatedWnd が TRUE である必要があります。)

m_bWndLess が TRUE の場合、m_spInPlaceSiteIOleInPlaceSiteWindowless インターフェイス ポインターです。 これらのデータ メンバー間の完全なリレーションシップを示す表については、「CComControlBase::m_spInPlaceSite」を参照してください。

CComControlBase::m_hWndCD

コントロールに関連付けられたウィンドウ ハンドルへの参照を格納します。

HWND& m_hWndCD;

解説

Note

コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。

CComControlBase::m_nFreezeEvents

イベントの凍結解除 (イベントの受け入れ) を間に入れることなく、コンテナーがイベントを凍結 (イベントの受け入れを拒否) した回数。

short m_nFreezeEvents;

解説

Note

コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。

CComControlBase::m_rcPos

コントロールのピクセル単位の位置。コンテナーの座標で表されます。

RECT m_rcPos;

解説

Note

コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。

CComControlBase::m_sizeExtent

HIMETRIC 単位 (各単位は 0.01 mm) での特定のディスプレイのコントロールの範囲。

SIZE m_sizeExtent;

解説

Note

コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。

このサイズは、ディスプレイによって拡大縮小されます。 コントロールの物理サイズは m_sizeNatural データ メンバーで指定され、固定されています。

グローバル関数の AtlHiMetricToPixel を使用して、サイズをピクセルに変換することができます。

CComControlBase::m_sizeNatural

HIMETRIC 単位 (各単位は 0.01 mm) でのコントロールの物理サイズ。

SIZE m_sizeNatural;

解説

Note

コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。

このサイズは固定されていますが、m_sizeExtent のサイズはディスプレイによって拡大縮小されます。

グローバル関数の AtlHiMetricToPixel を使用して、サイズをピクセルに変換することができます。

CComControlBase::m_spAdviseSink

コンテナー (コンテナーの IAdviseSink) のアドバイザリ接続への直接ポインター。

CComPtr<IAdviseSink>
    m_spAdviseSink;

解説

Note

コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。

CComControlBase::m_spAmbientDispatch

IDispatch ポインターを使用してオブジェクトのプロパティを取得および設定できる CComDispatchDriver オブジェクト。

CComDispatchDriver m_spAmbientDispatch;

解説

Note

コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。

CComControlBase::m_spClientSite

コンテナー内のコントロールのクライアント サイトへのポインター。

CComPtr<IOleClientSite>
    m_spClientSite;

解説

Note

コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。

CComControlBase::m_spDataAdviseHolder

データ オブジェクトとアドバイス シンク間のアドバイザリ接続を保持する標準的な手段を提供します。

CComPtr<IDataAdviseHolder>
    m_spDataAdviseHolder;

解説

Note

コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。

データ オブジェクトは、データを転送できるコントロールであり、データの形式と転送メディアを指定するメソッドである IDataObject を実装します。

インターフェイス m_spDataAdviseHolder は、コンテナーへのアドバイザリ接続を確立および削除するための IDataObject::DAdvise および IDataObject::DUnadvise メソッドを実装します。 コントロールのコンテナーは、IAdviseSink インターフェイスをサポートすることにより、アドバイス シンクを実装する必要があります。

CComControlBase::m_spInPlaceSite

コンテナーの IOleInPlaceSiteIOleInPlaceSiteEx、または IOleInPlaceSiteWindowless インターフェイス ポインターへのポインター。

CComPtr<IOleInPlaceSiteWindowless>
    m_spInPlaceSite;

解説

Note

コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。

m_spInPlaceSite ポインターは、m_bNegotiatedWnd フラグが TRUE の場合にのみ有効です。

次の表は、m_spInPlaceSite ポインター型が m_bWndLess および m_bInPlaceSiteEx データ メンバー フラグにどのように依存しているかを示しています。

m_spInPlaceSite の種類 m_bWndLess 値 m_bInPlaceSiteEx 値
IOleInPlaceSiteWindowless TRUE TRUE または FALSE
IOleInPlaceSiteEx FALSE TRUE
IOleInPlaceSite false FALSE

CComControlBase::m_spOleAdviseHolder

アドバイザリ接続を保持するための標準的な実装を提供します。

CComPtr<IOleAdviseHolder>
    m_spOleAdviseHolder;

解説

Note

コントロール クラス内でこのデータ メンバーを使用するには、コントロール クラスのデータ メンバーとしてそれを宣言する必要があります。 コントロール クラスでは、基底クラスからこのデータ メンバーが継承されません。基底クラスの共用体内で宣言されているためです。

インターフェイス m_spOleAdviseHolder は、コンテナーへのアドバイザリ接続を確立および削除するための IOleObject::Advise および IOleObject::Unadvise メソッドを実装します。 コントロールのコンテナーは、IAdviseSink インターフェイスをサポートすることにより、アドバイス シンクを実装する必要があります。

CComControlBase::OnDraw

コントロールを描画するには、このメソッドをオーバーライドします。

virtual HRESULT OnDraw(ATL_DRAWINFO& di);

パラメーター

ディ
描画の縦横比、コントロールの境界、描画が最適化されているかどうかなどの描画情報を格納する ATL_DRAWINFO 構造体への参照。

戻り値

標準の HRESULT 値。

解説

既定の OnDraw では、CComControlBase::OnDrawAdvanced に設定されているフラグに応じて、デバイス コンテキストが削除または復元されるか、何も実行されません。

ATL コントロール ウィザードを使用してコントロールを作成すると、コントロール クラスに OnDraw メソッドが自動的に追加されます。 ウィザードの既定の OnDraw では、"ATL 8.0" というラベルの付いた四角形が描画されます。

CComControlBase::GetAmbientAppearance の例を参照してください。

CComControlBase::OnDrawAdvanced

既定の OnDrawAdvanced では、描画用に正規化されたデバイス コンテキストが準備され、コントロール クラスの OnDraw メソッドが呼び出されます。

virtual HRESULT OnDrawAdvanced(ATL_DRAWINFO& di);

パラメーター

ディ
描画の縦横比、コントロールの境界、描画が最適化されているかどうかなどの描画情報を格納する ATL_DRAWINFO 構造体への参照。

戻り値

標準の HRESULT 値。

解説

正規化せずにコンテナーによって渡されたデバイス コンテキストを受け入れる場合は、このメソッドをオーバーライドします。

詳細については、「CComControlBase::OnDraw」を参照してください。

CComControlBase::OnKillFocus

コントロールがインプレース アクティブであり、有効なコントロール サイトを持っている場合は、コントロールがフォーカスを失ったことをコンテナーに通知します。

LRESULT OnKillFocus(UINT /* nMsg */,
    WPARAM /* wParam */,
    LPARAM /* lParam */,
    BOOL& bHandled);

パラメーター

nMsg
予約済み。

wParam
予約済み。

lParam
予約済み。

bHandled
ウィンドウ メッセージが正常に処理されたかどうかを示すフラグ。 既定値は FAL Standard Edition です。

戻り値

常に 1 が返されます。

CComControlBase::OnMouseActivate

UI がユーザー モードであるか確認し、コントロールをアクティブにします。

LRESULT OnMouseActivate(UINT /* nMsg */,
    WPARAM /* wParam */,
    LPARAM /* lParam */,
    BOOL& bHandled);

パラメーター

nMsg
予約済み。

wParam
予約済み。

lParam
予約済み。

bHandled
ウィンドウ メッセージが正常に処理されたかどうかを示すフラグ。 既定値は FAL Standard Edition です。

戻り値

常に 1 が返されます。

CComControlBase::OnPaint

コンテナーで描画の準備を行い、コントロールのクライアント領域を取得してから、コントロール クラスの OnDrawAdvanced メソッドを呼び出します。

LRESULT OnPaint(UINT /* nMsg */,
    WPARAM wParam,
    LPARAM /* lParam */,
    BOOL& /* lResult */);

パラメーター

nMsg
予約済み。

wParam
既存の HDC。

lParam
予約済み。

lResult
予約済み。

戻り値

常にゼロが返されます。

解説

wParam が NULL でない場合、OnPaint では有効な HDC を含んでいると見なし、CComControlBase::m_hWndCD の代わりにそれを使用します。

CComControlBase::OnSetFocus

コントロールがインプレース アクティブであり、有効なコントロール サイトを持っている場合は、コントロールがフォーカスを取得したとコンテナーに通知します。

LRESULT OnSetFocus(UINT /* nMsg */,
    WPARAM /* wParam */,
    LPARAM /* lParam */,
    BOOL& bHandled);

パラメーター

nMsg
予約済み。

wParam
予約済み。

lParam
予約済み。

bHandled
ウィンドウ メッセージが正常に処理されたかどうかを示すフラグ。 既定値は FAL Standard Edition です。

戻り値

常に 1 が返されます。

解説

コントロールがフォーカスを受け取ったコンテナーに通知を送信します。

CComControlBase::PreTranslateAccelerator

独自のキーボード アクセラレータ ハンドラーを提供するには、このメソッドをオーバーライドします。

BOOL PreTranslateAccelerator(LPMSG /* pMsg */,
    HRESULT& /* hRet */);

パラメーター

Pmsg
予約済み。

hRet
予約済み。

戻り値

既定では FALSE が返されます。

CComControlBase::SendOnClose

コントロールが閉じられたことを、アドバイス ホルダーに登録されているすべてのアドバイザリ シンクに通知します。

HRESULT SendOnClose();

戻り値

成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。

解説

コントロールがそのアドバイズ シンクを閉じたことを示す通知を送信します。

CComControlBase::SendOnDataChange

コントロール データが変更されたことを、アドバイス ホルダーに登録されているすべてのアドバイザリ シンクに通知します。

HRESULT SendOnDataChange(DWORD advf = 0);

パラメーター

advf
IAdviseSink::OnDataChange の呼び出しを行う方法を指定するアドバイス フラグ。 値は ADVF 列挙体からのものです。

戻り値

成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。

CComControlBase::SendOnRename

コントロールに新しいモニカーがあることを、アドバイス ホルダーに登録されているすべてのアドバイザリ シンクに通知します。

HRESULT SendOnRename(IMoniker* pmk);

パラメーター

pmk
コントロールの新しいモニカーへのポインター。

戻り値

成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。

解説

コントロールのモニカーが変更されたことを示す通知を送信します。

CComControlBase::SendOnSave

コントロールが保存されたことを、アドバイス ホルダーに登録されているすべてのアドバイザリ シンクに通知します。

HRESULT SendOnSave();

戻り値

成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。

解説

コントロールがそのデータを保存したことを示す通知を送信します。

CComControlBase::SendOnViewChange

登録済みのすべてのアドバイザリ シンクに、コントロールのビューが変更されたことを通知します。

HRESULT SendOnViewChange(DWORD dwAspect, LONG lindex = -1);

パラメーター

dwAspect
コントロールの縦横比またはビュー。

lindex
変更されたビューの部分。 有効なのは -1 のみです。

戻り値

成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。

解説

SendOnViewChangeIAdviseSink::OnViewChange を呼び出します。 現在サポートされている lindex の唯一の値は -1 のみです。これは、ビュー全体が対象であることを示します。

CComControlBase::SetControlFocus

コントロールとの間でキーボード フォーカスを設定または削除します。

BOOL SetControlFocus(BOOL bGrab);

パラメーター

bGrab
TRUE の場合、呼び出し元のコントロールにキーボード フォーカスを設定します。 FALSE の場合、フォーカスがある場合は、呼び出し元のコントロールからキーボード フォーカスを削除します。

戻り値

コントロールがフォーカスを正常に受信した場合は TRUE を返し、それ以外の場合は FALSE を返します。

解説

ウィンドウ表示コントロールの場合は、Windows API 関数 SetFocus が呼び出されます。 ウィンドウなしのコントロールの場合は、IOleInPlaceSiteWindowless::SetFocus が呼び出されます。 この呼び出しにより、ウィンドウなしのコントロールがキーボード フォーカスを取得し、ウィンドウ メッセージに応答できるようになります。

CComControlBase::SetDirty

データ メンバー m_bRequiresSave を、bDirty の値に設定します。

void SetDirty(BOOL bDirty);

パラメーター

bDirty
データメンバー CComControlBase::m_bRequiresSave の値。

解説

最後に保存されてからコントロールが変更されたことを示すフラグを付けるには、SetDirty(TRUE) を呼び出す必要があります。 m_bRequiresSave の値は CComControlBase::GetDirty を使用して取得されます。

関連項目

CComControl クラス
クラスの概要