COleControl クラス
OLE コントロールを開発するための強力な基底クラスです。
構文
class COleControl : public CWnd
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
COleControl::COleControl | COleControl オブジェクトを作成します。 |
パブリック メソッド
名前 | 説明 |
---|---|
COleControl::AmbientAppearance | コントロールの現在の外観を取得します。 |
COleControl::AmbientBackColor | アンビエント BackColor プロパティの値を返します。 |
COleControl::AmbientDisplayName | コンテナーで指定されたコントロールの名前を返します。 |
COleControl::AmbientFont | アンビエント Font プロパティの値を返します。 |
COleControl::AmbientForeColor | アンビエント ForeColor プロパティの値を返します。 |
COleControl::AmbientLocaleID | コンテナーのロケール ID を返します。 |
COleControl::AmbientScaleUnits | コンテナーで使用される単位の種類を返します。 |
COleControl::AmbientShowGrabHandles | グラブ ハンドルを表示するかどうかを決定します。 |
COleControl::AmbientShowHatching | ハッチングを表示するかどうかを指定します。 |
COleControl::AmbientTextAlign | コンテナーで指定されたテキスト配置の種類を返します。 |
COleControl::AmbientUIDead | コントロールがユーザー インターフェイス アクションに応答する必要があるかどうかを判断します。 |
COleControl::AmbientUserMode | コンテナーのモードを決定します。 |
COleControl::BoundPropertyChanged | バインドされたプロパティが変更されたことをコンテナーに通知します。 |
COleControl::BoundPropertyRequestEdit | プロパティ値を編集するためのアクセス許可を要求します。 |
COleControl::ClientToParent | コントロールの原点を基準とした点を、そのコンテナーの原点を基準とした点に変換します。 |
COleControl::ClipCaretRect | キャレット四角形がコントロールによって重なっている場合に調整します。 |
COleControl::ControlInfoChanged | コントロールによって処理されるニーモニックのセットが変更された後、この関数を呼び出します。 |
COleControl::D isplayError | コントロールのユーザーにストック エラー イベントを表示します。 |
COleControl::D oClick | stock DoClick メソッドの実装。 |
COleControl::D oPropExchange | COleControl オブジェクトのプロパティをシリアル化します。 |
COleControl::D oSuperclassPaint | Windows コントロールからサブクラス化された OLE コントロールを再描画します。 |
COleControl::EnableSimpleFrame | コントロールの単純なフレーム サポートを有効にします。 |
COleControl::ExchangeExtent | コントロールの幅と高さをシリアル化します。 |
COleControl::ExchangeStockProps | コントロールのストック プロパティをシリアル化します。 |
COleControl::ExchangeVersion | コントロールのバージョン番号をシリアル化します。 |
COleControl::FireClick | ストック Click イベントを発生します。 |
COleControl::FireDblClick | ストック DblClick イベントを発生します。 |
COleControl::FireError | ストック Error イベントを発生します。 |
COleControl::FireEvent | カスタム イベントを発生します。 |
COleControl::FireKeyDown | ストック KeyDown イベントを発生します。 |
COleControl::FireKeyPress | ストック KeyPress イベントを発生します。 |
COleControl::FireKeyUp | ストック KeyUp イベントを発生します。 |
COleControl::FireMouseDown | ストック MouseDown イベントを発生します。 |
COleControl::FireMouseMove | ストック MouseMove イベントを発生します。 |
COleControl::FireMouseUp | ストック MouseUp イベントを発生します。 |
COleControl::FireReadyStateChange | コントロールの準備完了状態が変更されたときにイベントを発生させます。 |
COleControl::GetActivationPolicy | IPointerInactive インターフェイスをサポートするコントロールの既定のアクティブ化動作を変更します。 |
COleControl::GetAmbientProperty | 指定したアンビエント プロパティの値を返します。 |
COleControl::GetAppearance | ストックの Appearance プロパティの値を返します。 |
COleControl::GetBackColor | ストック BackColor プロパティの値を返します。 |
COleControl::GetBorderStyle | ストック BorderStyle プロパティの値を返します。 |
COleControl::GetCapture | ウィンドウレスのアクティブ化されたコントロール オブジェクトにマウス キャプチャがあるかどうかを判断します。 |
COleControl::GetClassID | コントロールの OLE クラス ID を取得します。 |
COleControl::GetClientOffset | コントロールの四角形領域の左上隅とクライアント領域の左上隅の違いを取得します。 |
COleControl::GetClientRect | コントロールのクライアント領域のサイズを取得します。 |
COleControl::GetClientSite | コンテナー内の現在のクライアント サイトへのポインターをオブジェクトに照会します。 |
COleControl::GetControlFlags | コントロール フラグの設定を取得します。 |
COleControl::GetControlSize | OLE コントロールの位置とサイズを返します。 |
COleControl::GetDC | ウィンドウレス コントロールがコンテナーからデバイス コンテキストを取得するための手段を提供します。 |
COleControl::GetEnabled | stock Enabled プロパティの値を返します。 |
COleControl::GetExtendedControl | コンテナーに属する拡張コントロール オブジェクトへのポインターを取得します。 |
COleControl::GetFocus | コントロールにフォーカスがあるかどうかを判断します。 |
COleControl::GetFont | ストック Font プロパティの値を返します。 |
COleControl::GetFontTextMetrics | CFontHolder オブジェクトのメトリックを返します。 |
COleControl::GetForeColor | ストック ForeColor プロパティの値を返します。 |
COleControl::GetHwnd | ストック hWnd プロパティの値を返します。 |
COleControl::GetMessageString | メニュー項目のステータス バーテキストを提供します。 |
COleControl::GetNotSupported | ユーザーがコントロールのプロパティ値にアクセスできないようにします。 |
COleControl::GetReadyState | コントロールの準備状態を返します。 |
COleControl::GetRectInContainer | コンテナーに対するコントロールの四角形を返します。 |
COleControl::GetStockTextMetrics | ストック Font プロパティのメトリックを返します。 |
COleControl::GetText | ストック Text または Caption プロパティの値を返します。 |
COleControl::GetWindowlessDropTarget | ウィンドウなしのコントロールをドラッグ アンド ドロップ操作のターゲットにするには、オーバーライドします。 |
COleControl::InitializeIIDs | コントロールが使用する IID の基底クラスに通知します。 |
COleControl::InternalGetFont | ストック Font プロパティの CFontHolder オブジェクトを返します。 |
COleControl::InternalGetText | ストック キャプションまたは Text プロパティを取得します。 |
COleControl::InternalSetReadyState | コントロールの準備状態を設定し、準備完了状態変更イベントを発生させます。 |
COleControl::InvalidateControl | 表示されているコントロールの領域を無効にして、再描画します。 |
COleControl::InvalidateRgn | 指定されたリージョン内のコンテナー ウィンドウのクライアント領域を無効にします。 領域内のウィンドウなしのコントロールを再描画するために使用できます。 |
COleControl::IsConvertingVBX | OLE コントロールの特殊な読み込みを許可します。 |
COleControl::IsModified | コントロールの状態が変更されたかどうかを判断します。 |
COleControl::IsOptimizedDraw | コンテナーが現在の描画操作用に最適化された描画をサポートしているかどうかを示します。 |
COleControl::IsSubclassedControl | コントロールが Windows コントロールをサブクラス化するかどうかを判断するために呼び出されます。 |
COleControl::Load | 以前の非同期データをリセットし、コントロールの非同期プロパティの新しい読み込みを開始します。 |
COleControl::LockInPlaceActive | コンテナーによってコントロールを非アクティブ化できるかどうかを判断します。 |
COleControl::OnAmbientPropertyChange | アンビエント プロパティが変更されたときに呼び出されます。 |
COleControl::OnAppearanceChanged | ストックの外観プロパティが変更されたときに呼び出されます。 |
COleControl::OnBackColorChanged | ストック BackColor プロパティが変更されたときに呼び出されます。 |
COleControl::OnBorderStyleChanged | ストック BorderStyle プロパティが変更されたときに呼び出されます。 |
COleControl::OnClick | Stock Click イベントを発生させるために呼び出されます。 |
COleControl::OnClose | IOleControl::Close が呼び出されたことをコントロールに通知します。 |
COleControl::OnDoVerb | コントロール動詞が実行された後に呼び出されます。 |
COleControl::OnDraw | コントロール自体の再描画が要求されたときに呼び出されます。 |
COleControl::OnDrawMetafile | メタファイル デバイス コンテキストを使用してコントロール自体を再描画するように要求されたときに、コンテナーによって呼び出されます。 |
COleControl::OnEdit | コンテナーによって UI に呼び出され、OLE コントロールがアクティブ化されます。 |
COleControl::OnEnabledChanged | stock Enabled プロパティが変更されたときに呼び出されます。 |
COleControl::OnEnumVerbs | コントロールの動詞を列挙するためにコンテナーによって呼び出されます。 |
COleControl::OnEventAdvise | イベント ハンドラーがコントロールに接続されているか、コントロールから切断されたときに呼び出されます。 |
COleControl::OnFontChanged | ストック Font プロパティが変更されたときに呼び出されます。 |
COleControl::OnForeColorChanged | ストック ForeColor プロパティが変更されたときに呼び出されます。 |
COleControl::OnFreezeEvents | コントロールのイベントがフリーズまたはフローゼン解除されたときに呼び出されます。 |
COleControl::OnGetColorSet | IOleObject::GetColorSet が呼び出されたことをコントロールに通知します。 |
COleControl::OnGetControlInfo | ニーモニック情報をコンテナーに提供します。 |
COleControl::OnGetDisplayString | プロパティ値を表す文字列を取得するために呼び出されます。 |
COleControl::OnGetInPlaceMenu | コンテナー メニューとマージされるコントロールのメニューのハンドルを要求します。 |
COleControl::OnGetNaturalExtent | 提案されたサイズに最も近いコントロールの表示サイズを取得するオーバーライド (例テント モード。 |
COleControl::OnGetPredefinedStrings | プロパティに使用できる値を表す文字列を返します。 |
COleControl::OnGetPredefinedValue | 定義済みの文字列に対応する値を返します。 |
COleControl::OnGetViewExtent | コントロールの表示領域のサイズを取得するオーバーライド (2 パス描画を有効にするために使用できます)。 |
COleControl::OnGetViewRect | コントロールのサイズを特定の位置から始まる四角形に変換するには、オーバーライドします。 |
COleControl::OnGetViewStatus | コントロールのビューの状態を取得する場合にオーバーライドします。 |
COleControl::OnHideToolBars | コントロールが UI 非アクティブ化されたときにコンテナーによって呼び出されます。 |
COleControl::OnInactiveMouseMove | マウス ポインターの下にある非アクティブなコントロールのコンテナーがコントロールにメッセージWM_MOUSEMOVEディスパッチするようにオーバーライドします。 |
COleControl::OnInactiveSetCursor | マウス ポインターの下にある非アクティブなコントロールのコンテナーがコントロールにメッセージWM_SETCURSORディスパッチするようにオーバーライドします。 |
COleControl::OnKeyDownEvent | ストック KeyDown イベントが発生した後に呼び出されます。 |
COleControl::OnKeyPressEvent | ストック KeyPress イベントが発生した後に呼び出されます。 |
COleControl::OnKeyUpEvent | ストック KeyUp イベントが発生した後に呼び出されます。 |
COleControl::OnMapPropertyToPage | プロパティの編集に使用するプロパティ ページを示します。 |
COleControl::OnMnemonic | コントロールのニーモニック キーが押されたときに呼び出されます。 |
COleControl::OnProperties | コントロールの "プロパティ" 動詞が呼び出されたときに呼び出されます。 |
COleControl::OnQueryHitPoint | コントロールの表示が特定のポイントと重なるかどうかをクエリする場合にオーバーライドします。 |
COleControl::OnQueryHitRect | コントロールの表示が特定の四角形内の任意のポイントと重なるかどうかをクエリする場合にオーバーライドします。 |
COleControl::OnRenderData | 指定した形式のデータを取得するためにフレームワークによって呼び出されます。 |
COleControl::OnRenderFileData | 指定した形式のファイルからデータを取得するためにフレームワークによって呼び出されます。 |
COleControl::OnRenderGlobalData | 指定した形式でグローバル メモリからデータを取得するためにフレームワークによって呼び出されます。 |
COleControl::OnResetState | コントロールのプロパティを既定値にリセットします。 |
COleControl::OnSetClientSite | IOleControl::SetClientSite が呼び出されたことをコントロールに通知します。 |
COleControl::OnSetData | コントロールのデータを別の値に置き換えます。 |
COleControl::OnSetExtent | コントロールのエクステントが変更された後に呼び出されます。 |
COleControl::OnSetObjectRects | コントロールのディメンションが変更された後に呼び出されます。 |
COleControl::OnShowToolBars | コントロールが UI アクティブ化されたときに呼び出されます。 |
COleControl::OnTextChanged | ストック Text または Caption プロパティが変更されたときに呼び出されます。 |
COleControl::OnWindowlessMessage | ウィンドウレス コントロールのウィンドウ メッセージ (マウスおよびキーボード メッセージ以外) を処理します。 |
COleControl::P arentToClient | コンテナーの原点を基準にした点を、コントロールの原点を基準とした点に変換します。 |
COleControl::P ostModalDialog | モーダル ダイアログ ボックスが閉じられたことをコンテナーに通知します。 |
COleControl::P reModalDialog | モーダル ダイアログ ボックスが表示されようとしていることをコンテナーに通知します。 |
COleControl::RecreateControlWindow | コントロールのウィンドウを破棄して再作成します。 |
COleControl::Refresh | コントロールの外観を強制的に再描画します。 |
COleControl::ReleaseCapture | マウス キャプチャを解放します。 |
COleControl::ReleaseDC | ウィンドウレス コントロールのコンテナーの表示デバイス コンテキストを解放します。 |
COleControl::ReparentControlWindow | コントロール ウィンドウの親をリセットします。 |
COleControl::ResetStockProps | ストック プロパティ COleControl 既定値に初期化します。 |
COleControl::ResetVersion | バージョン番号を特定の値に初期化します。 |
COleControl::ScrollWindow | ウィンドウレス コントロールで、ディスプレイ上のインプレースアクティブイメージ内の領域をスクロールできるようにします。 |
COleControl::SelectFontObject | デバイス コンテキストにカスタム Font プロパティを選択します。 |
COleControl::SelectStockFont | デバイス コンテキストにストック Font プロパティを選択します。 |
COleControl::SerializeExtent | コントロールの表示領域をシリアル化または初期化します。 |
COleControl::SerializeStockProps | COleControl ストック プロパティをシリアル化または初期化します。 |
COleControl::SerializeVersion | コントロールのバージョン情報をシリアル化または初期化します。 |
COleControl::SetAppearance | ストック外観プロパティの値を設定します。 |
COleControl::SetBackColor | ストック BackColor プロパティの値を設定します。 |
COleControl::SetBorderStyle | ストック BorderStyle プロパティの値を設定します。 |
COleControl::SetCapture | コントロールのコンテナー ウィンドウがコントロールの代わりにマウス キャプチャを所有するようにします。 |
COleControl::SetControlSize | OLE コントロールの位置とサイズを設定します。 |
COleControl::SetEnabled | stock Enabled プロパティの値を設定します。 |
COleControl::SetFocus | コントロールのコンテナー ウィンドウがコントロールの代わりに入力フォーカスを所有するようにします。 |
COleControl::SetFont | ストック Font プロパティの値を設定します。 |
COleControl::SetForeColor | ストック ForeColor プロパティの値を設定します。 |
COleControl::SetInitialSize | コンテナーに初めて表示するときの OLE コントロールのサイズを設定します。 |
COleControl::SetModifiedFlag | コントロールの変更された状態を変更します。 |
COleControl::SetNotPermitted | 編集要求が失敗したことを示します。 |
COleControl::SetNotSupported | ユーザーによるコントロールのプロパティ値の変更を禁止します。 |
COleControl::SetRectInContainer | コントロールの四角形をコンテナーに対して相対的に設定します。 |
COleControl::SetText | ストックテキストまたはキャプションプロパティの値を設定します。 |
COleControl::ThrowError | OLE コントロールでエラーが発生したことを通知します。 |
COleControl::TransformCoords | コンテナーとコントロールの間の座標値を変換します。 |
COleControl::TranslateColor | OLE_COLOR値を COLORREF 値に変換します。 |
COleControl::WillAmbientsBeValidDuringLoad | 次にコントロールを読み込む際にアンビエント プロパティを使用できるかどうかを決定します。 |
COleControl::WindowProc | COleControl オブジェクトの Windows プロシージャを提供します。 |
保護メソッド
名前 | 説明 |
---|---|
COleControl::D rawContent | コントロールの外観を更新する必要がある場合にフレームワークによって呼び出されます。 |
COleControl::D rawMetafile | メタファイル デバイス コンテキストが使用されている場合にフレームワークによって呼び出されます。 |
COleControl::IsInvokeAllowed | オートメーション メソッドの呼び出しを有効にします。 |
COleControl::SetInitialDataFormats | コントロールでサポートされているデータ形式の一覧を初期化するためにフレームワークによって呼び出されます。 |
解説
CWnd
から派生したこのクラスは、Windows ウィンドウ オブジェクトのすべての機能に加えて、イベントの発生やメソッドとプロパティをサポートする機能など、OLE に固有の追加機能を継承します。
OLE コントロールを OLE コンテナー アプリケーションに挿入し、双方向のイベント発生システムを使用してコンテナーと通信し、メソッドとプロパティをコンテナーに公開できます。 標準の OLE コンテナーでは、OLE コントロールの基本的な機能のみがサポートされることに注意してください。 OLE コントロールの拡張機能をサポートできません。 イベントの発生は、コントロールで特定のアクションが実行された結果としてイベントがコンテナーに送信されるときに発生します。 さらに、コンテナーは、C++ クラスのメンバー関数とデータ メンバーに似た、公開された一連のメソッドとプロパティを使用してコントロールと通信します。 この方法により、開発者はコントロールの外観を制御し、特定のアクションが発生したときにコンテナーに通知できます。
ウィンドウなしのコントロール
OLE コントロールは、ウィンドウなしでインプレース アクティブに使用できます。 ウィンドウレス コントロールには、次のような大きな利点があります。
ウィンドウレス コントロールは透明で四角形以外にすることができます
ウィンドウレス コントロールにより、オブジェクトのインスタンス サイズと作成時間が短縮されます
コントロールにはウィンドウは必要ありません。 ウィンドウが提供するサービスは、1 つの共有ウィンドウ (通常はコンテナー) と少しのディスパッチ コードを使用して簡単に提供できます。 ウィンドウを持つことは、ほとんどの場合、オブジェクトに不要な複雑です。
ウィンドウなしのアクティブ化を使用する場合、コンテナー (ウィンドウを含む) は、コントロールの独自のウィンドウによって提供されたサービスを提供する役割を担います。 たとえば、コントロールでキーボード フォーカスのクエリを実行したり、マウス キャプチャに対してクエリを実行したり、デバイス コンテキストを取得したりする必要がある場合、これらの操作はコンテナーによって管理されます。 COleControl
ウィンドウレス操作メンバー関数は、コンテナーに対してこれらの操作を呼び出します。
ウィンドウレスアクティブ化が有効になっている場合、コンテナーはコントロールの IOleInPlaceObjectWindowless
インターフェイス (ウィンドウレス サポート用の IOleInPlaceObject の拡張機能) に入力メッセージを委任します。 COleControl
このインターフェイスの実装では、マウス座標を適切に調整した後、コントロールのメッセージ マップを介してこれらのメッセージがディスパッチされます。 これらのメッセージは、通常のウィンドウ メッセージと同様に、対応するエントリをメッセージ マップに追加することで処理できます。
ウィンドウなしのコントロールでは、対応するCWnd
メンバー関数や関連する Windows API 関数ではなく、常にCOleControl
メンバー関数を使用する必要があります。
OLE コントロール オブジェクトは、アクティブになったときにのみウィンドウを作成することもできますが、非アクティブ/アクティブ切り替えに必要な作業量が増え、切り替えの速度が低下します。 問題が発生する場合があります。たとえば、テキスト ボックスのグリッドを考えてみましょう。 列を上下にカーソルを合わせて移動する場合、各コントロールをインプレースアクティブ化してから非アクティブ化する必要があります。 非アクティブ/アクティブ切り替えの速度は、スクロール速度に直接影響します。
OLE コントロール フレームワークの開発の詳細については、「 MFC ActiveX コントロール および Overview: MFC ActiveX コントロール プログラムの作成に関する記事を参照してください。 ウィンドウなしのコントロールやちらつきのないコントロールなど、OLE コントロールの最適化については、「 MFC ActiveX コントロール: 最適化」を参照してください。
継承階層
COleControl
要件
Header: afxctl.h
COleControl::AmbientBackColor
アンビエント BackColor プロパティの値を返します。
OLE_COLOR AmbientBackColor();
戻り値
コンテナーのアンビエント BackColor プロパティの現在の値 (存在する場合)。 このプロパティがサポートされていない場合、この関数はシステム定義の Windows 背景色を返します。
解説
アンビエント BackColor プロパティは、すべてのコントロールで使用でき、コンテナーによって定義されます。 コンテナーは、このプロパティをサポートするために必要ではないことに注意してください。
COleControl::AmbientDisplayName
コンテナーがコントロールに割り当てた名前は、ユーザーに表示されるエラー メッセージで使用できます。
CString AmbientDisplayName();
戻り値
OLE コントロールの名前。 既定値は長さ 0 の文字列です。
解説
コンテナーは、このプロパティをサポートするために必要ではないことに注意してください。
COleControl::AmbientFont
アンビエント Font プロパティの値を返します。
LPFONTDISP AmbientFont();
戻り値
コンテナーのアンビエント フォント ディスパッチ インターフェイスへのポインター。 既定値は NULL です。 戻り値が NULL と等しくない場合は、 IUnknown::Release メンバー関数を呼び出してフォントを解放する必要があります。
解説
アンビエント Font プロパティはコンテナーによって定義され、すべてのコントロールで使用できます。コンテナーは、このプロパティをサポートするために必要ではないことに注意してください。
COleControl::AmbientForeColor
アンビエント ForeColor プロパティの値を返します。
OLE_COLOR AmbientForeColor();
戻り値
コンテナーのアンビエント ForeColor プロパティの現在の値 (存在する場合)。 サポートされていない場合、この関数はシステム定義の Windows テキストの色を返します。
解説
アンビエント ForeColor プロパティは、すべてのコントロールで使用でき、コンテナーによって定義されます。 コンテナーは、このプロパティをサポートするために必要ではないことに注意してください。
COleControl::AmbientLocaleID
コンテナーのロケール ID を返します。
LCID AmbientLocaleID();
戻り値
コンテナーの LocaleID プロパティの値 (存在する場合)。 このプロパティがサポートされていない場合、この関数は 0 を返します。
解説
コントロールでは、LocaleID を使用して、特定のロケールに合わせてユーザー インターフェイスを調整できます。 コンテナーは、このプロパティをサポートするために必要ではないことに注意してください。
COleControl::AmbientAppearance
コントロール オブジェクトの現在の外観設定を取得します。
short AmbientAppearance();
戻り値
コントロールの外観:
0 フラットな外観
1 3D の外観
解説
コントロールの DISPID_AMBIENT_APPEARANCE プロパティの現在の値を取得するには、この関数を呼び出します。
COleControl::AmbientScaleUnits
コンテナーで使用される単位の種類を返します。
CString AmbientScaleUnits();
戻り値
コンテナーのアンビエント ScaleUnits を含む文字列。 このプロパティがサポートされていない場合、この関数は長さ 0 の文字列を返します。
解説
コンテナーのアンビエント ScaleUnits プロパティを使用すると、twip やセンチメートルなどの選択した単位でラベル付けされた位置または寸法を表示できます。 コンテナーは、このプロパティをサポートするために必要ではないことに注意してください。
COleControl::AmbientShowGrabHandles
コンテナーがアクティブな場合に、コントロールが自身のグラブ ハンドルを表示できるかどうかを決定します。
BOOL AmbientShowGrabHandles();
戻り値
グラブ ハンドルを表示する必要がある場合は 0 以外。それ以外の場合は 0。 このプロパティがサポートされていない場合、この関数は 0 以外の値を返します。
解説
コンテナーは、このプロパティをサポートするために必要ではないことに注意してください。
COleControl::AmbientShowHatching
UI がアクティブな場合に、コンテナーがコントロール自体をハッチング パターンで表示できるかどうかを決定します。
BOOL AmbientShowHatching();
戻り値
ハッチングパターンを表示する必要がある場合は 0 以外。それ以外の場合は 0。 このプロパティがサポートされていない場合、この関数は 0 以外の値を返します。
解説
コンテナーは、このプロパティをサポートするために必要ではないことに注意してください。
COleControl::AmbientTextAlign
コントロール コンテナーで優先されるアンビエント テキストの配置を決定します。
short AmbientTextAlign();
戻り値
コンテナーのアンビエント TextAlign プロパティの状態。 このプロパティがサポートされていない場合、この関数は 0 を返します。
有効な戻り値の一覧を次に示します。
戻り値 | 意味 |
---|---|
0 | 一般的な配置 (右側の数値、左にテキスト)。 |
1 | 左揃え |
2 | 中央 |
3 | 右揃え |
解説
このプロパティは、すべての埋め込みコントロールで使用でき、コンテナーによって定義されます。 コンテナーは、このプロパティをサポートするために必要ではないことに注意してください。
COleControl::AmbientUIDead
コンテナーがコントロールをユーザー インターフェイス アクションに応答させるかどうかを判断します。
BOOL AmbientUIDead();
戻り値
コントロールがユーザー インターフェイス アクションに応答する必要がある場合は 0 以外。それ以外の場合は 0。 このプロパティがサポートされていない場合、この関数は 0 を返します。
解説
たとえば、コンテナーでは、デザイン モードでこれを TRUE に設定できます。
COleControl::AmbientUserMode
コンテナーがデザイン モードかユーザー モードかを判断します。
BOOL AmbientUserMode();
戻り値
コンテナーがユーザー モードの場合は 0 以外。それ以外の場合は 0 (デザイン モード)。 このプロパティがサポートされていない場合、この関数は TRUE を返します。
解説
たとえば、コンテナーでは、デザイン モードでこれを FALSE に設定できます。
COleControl::BoundPropertyChanged
バインドされたプロパティ値が変更されたことを通知します。
void BoundPropertyChanged(DISPID dispid);
パラメーター
dispid
コントロールのバインドされたプロパティのディスパッチ ID。
解説
これは、プロパティ Set メソッドを使用して変更が行われなかった場合でも、プロパティの値が変更されるたびに呼び出す必要があります。 メンバー変数にマップされるバインドされたプロパティに特に注意してください。 このようなメンバー変数が変更されるたびに、 BoundPropertyChanged
を呼び出す必要があります。
COleControl::BoundPropertyRequestEdit
コントロールによって提供されるバインドされたプロパティ値を変更するために、 IPropertyNotifySink
インターフェイスからのアクセス許可を要求します。
BOOL BoundPropertyRequestEdit(DISPID dispid);
パラメーター
dispid
コントロールのバインドされたプロパティのディスパッチ ID。
戻り値
変更が許可されている場合は 0 以外。それ以外の場合は 0。 既定値は 0 以外です。
解説
アクセス許可が拒否された場合、コントロールはプロパティの値を変更しないようにする必要があります。 これを行うには、プロパティ値を変更しようとしたアクションを無視するか失敗します。
COleControl::ClientToParent
pPointの座標を親座標に変換します。
virtual void ClientToParent(
LPCRECT lprcBounds,
LPPOINT pPoint) const;
パラメーター
lprcBounds
コンテナー内の OLE コントロールの境界へのポインター。 クライアント領域ではなく、罫線やスクロール バーを含むコントロール全体の領域。
pPoint
親 (コンテナー) の座標に変換される OLE クライアント領域へのポインター。
解説
入力 pPoint では は OLE コントロールのクライアント領域 (コントロールのクライアント領域の左上隅) の原点を基準とします。 出力 pPoint では は親の原点 (コンテナーの左上隅) を基準にしています。
COleControl::ClipCaretRect
キャレット四角形が、重なり合う不透明なオブジェクトによって完全または部分的に覆われている場合に調整します。
BOOL ClipCaretRect(LPRECT lpRect);
パラメーター
lpRect
入力時に、調整するキャレット領域を含む RECT 構造体へのポインター。 出力では、調整されたキャレット領域。キャレット四角形が完全に覆われている場合は NULL。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
キャレットは、通常、テキストまたはグラフィックスが挿入される場所を示す点滅する線、ブロック、またはビットマップです。
ウィンドウレス オブジェクトは、最初にカーソルがオブジェクトを重ねて部分的に隠れているか完全に隠れているかを確認しないと、キャレットを安全に表示できません。 これを可能にするために、オブジェクトは ClipCaretRect
を使用してキャレットを調整 (縮小) し、クリッピング領域に収まるようにすることができます。
キャレットを作成するオブジェクトは、キャレットの四角形を送信して ClipCaretRect
し、キャレットに調整された四角形を使用する必要があります。 キャレットが完全に非表示の場合、このメソッドは FALSE を返し、この場合はキャレットをまったく表示しないでください。
COleControl::COleControl
COleControl
オブジェクトを構築します。
COleControl();
解説
通常、この関数は直接呼び出されません。 代わりに、OLE コントロールは通常、クラス ファクトリによって作成されます。
COleControl::ControlInfoChanged
コントロールでサポートされているニーモニックのセットが変更された場合に、この関数を呼び出します。
void ControlInfoChanged();
解説
この通知を受け取ると、コントロールのコンテナーは、 IOleControl::GetControlInfo を呼び出すことによってニーモニックの新しいセットを取得します。 コンテナーは、この通知に応答する必要はありません。
COleControl::D isplayError
ストック Error イベントが処理された後にフレームワークによって呼び出されます (イベント ハンドラーがエラーの表示を抑制していない場合)。
virtual void DisplayError(
SCODE scode,
LPCTSTR lpszDescription,
LPCTSTR lpszSource,
LPCTSTR lpszHelpFile,
UINT nHelpID);
パラメーター
scode
報告される状態コード値。 使用可能なコードの完全な一覧については、「 ActiveX Controls: Advanced Topics」を参照してください。
lpszDescription
報告されるエラーの説明。
lpszSource
エラーを生成するモジュールの名前 (通常は OLE コントロール モジュールの名前)。
lpszHelpFile
エラーの説明を含むヘルプ ファイルの名前。
nHelpID
報告されるエラーのヘルプ コンテキスト ID。
解説
既定の動作では、エラーの説明を含むメッセージ ボックス lpszDescriptionに表示されます。
エラーの表示方法をカスタマイズするには、この関数をオーバーライドします。
COleControl::D oClick
コントロールのマウス クリック 操作をシミュレートします。
void DoClick();
解説
オーバーライド可能な COleControl::OnClick
メンバー関数が呼び出され、コントロールでサポートされている場合は stock Click イベントが発生します。
この関数は、doClick と呼ばれるストック メソッドとして、 COleControl
基底クラスでサポートされています。 詳細については、「 ActiveX コントロール: メソッド」を参照してください。
COleControl::D oPropExchange
ストリームやプロパティ セットなどの永続的なストレージ表現からコントロールを読み込んだり格納したりする際に、フレームワークによって呼び出されます。
virtual void DoPropExchange(CPropExchange* pPX);
パラメーター
pPX
CPropExchange
オブジェクトを指すポインターです。 フレームワークは、このオブジェクトを提供して、その方向を含むプロパティ交換のコンテキストを確立します。
解説
この関数は通常、OLE コントロールの特定のユーザー定義プロパティを読み込んだり格納したりするために、 PX_ 関数ファミリを呼び出します。
コントロール ウィザードを使用して OLE コントロール プロジェクトを作成した場合、この関数のオーバーライドされたバージョンでは、基底クラス関数の呼び出しを使用して、 COleControl
でサポートされているストック プロパティ COleControl::DoPropExchange
シリアル化されます。 OLE コントロールにユーザー定義プロパティを追加するときは、この関数を変更して新しいプロパティをシリアル化する必要があります。 シリアル化の詳細については、「 ActiveX コントロール: シリアル化」を参照してください。
COleControl::D oSuperclassPaint
Windows コントロールからサブクラス化された OLE コントロールを再描画します。
void DoSuperclassPaint(
CDC* pDC,
const CRect& rcBounds);
パラメーター
pDC
コントロール コンテナーのデバイス コンテキストへのポインター。
rcBounds
コントロールを描画する領域。
解説
非アクティブな OLE コントロールの描画を適切に処理するには、この関数を呼び出します。 この関数は、OLE コントロールが Windows コントロールをサブクラス化し、コントロールの OnDraw
関数で呼び出す必要がある場合にのみ使用してください。
この関数と Windows コントロールのサブクラス化の詳細については、「 ActiveX コントロール: Windows コントロールのサブクラス化」を参照してください。
COleControl::D rawContent
コントロールの外観を更新する必要がある場合にフレームワークによって呼び出されます。
void DrawContent(
CDC* pDC,
CRect& rc);
パラメーター
pDC
デバイス コンテキストへのポインター。
rc
描画する四角形の領域。
解説
この関数は、オーバーライド可能な OnDraw
関数を直接呼び出します。
COleControl::D rawMetafile
メタファイル デバイス コンテキストが使用されている場合にフレームワークによって呼び出されます。
void DrawMetafile(
CDC* pDC,
CRect& rc);
パラメーター
pDC
メタファイル デバイス コンテキストへのポインター。
rc
描画する四角形の領域。
COleControl::EnableSimpleFrame
OLE コントロールの単純なフレーム特性を有効にします。
void EnableSimpleFrame();
解説
この特性により、コントロールは他のコントロールの視覚的な包含をサポートできますが、実際の OLE 包含はサポートできません。 たとえば、複数のコントロールが含まれたグループ ボックスがあります。 これらのコントロールは OLE に含まれていませんが、同じグループ ボックス内にあります。
COleControl::ExchangeExtent
コントロールのエクステントの状態 (HIMETRIC 単位のディメンション) をシリアル化または初期化します。
BOOL ExchangeExtent(CPropExchange* pPX);
パラメーター
pPX
CPropExchange オブジェクトへのポインター。 フレームワークは、このオブジェクトを提供して、その方向を含むプロパティ交換のコンテキストを確立します。
戻り値
関数が成功した場合は 0 以外。それ以外の場合は 0。
解説
この関数は、通常、 COleControl::DoPropExchange
の既定の実装によって呼び出されます。
COleControl::ExchangeStockProps
コントロールのストック プロパティの状態をシリアル化または初期化します。
void ExchangeStockProps(CPropExchange* pPX);
パラメーター
pPX
CPropExchange オブジェクトへのポインター。 フレームワークは、このオブジェクトを提供して、その方向を含むプロパティ交換のコンテキストを確立します。
解説
この関数は、通常、 COleControl::DoPropExchange
の既定の実装によって呼び出されます。
COleControl::ExchangeVersion
コントロールのバージョン情報の状態をシリアル化または初期化します。
BOOL ExchangeVersion(
CPropExchange* pPX,
DWORD dwVersionDefault,
BOOL bConvert = TRUE);
パラメーター
pPX
CPropExchange
オブジェクトを指すポインターです。 フレームワークは、このオブジェクトを提供して、その方向を含むプロパティ交換のコンテキストを確立します。
dwVersionDefault
コントロールの現在のバージョン番号。
bConvert
永続的なデータを保存時に最新の形式に変換するか、読み込まれたのと同じ形式で保持するかを示します。
戻り値
成功した関数の 0 以外。それ以外の場合は 0。
解説
通常、これは、 COleControl::DoPropExchange
のコントロールのオーバーライドによって呼び出される最初の関数になります。 読み込み時に、この関数は永続的なデータのバージョン番号を読み取り、それに応じて CPropExchange オブジェクトのバージョン属性を設定します。 保存時に、この関数は永続データのバージョン番号を書き込みます。
永続化とバージョン管理の詳細については、「 ActiveX コントロール: シリアル化」を参照してください。
COleControl::FireClick
アクティブなコントロールの上でマウスがクリックされたときにフレームワークによって呼び出されます。
void FireClick();
解説
このイベントがカスタム イベントとして定義されている場合は、イベントが発生するタイミングを決定します。
Click イベントを自動的に発生させるには、コントロールのイベント マップに Stock Click イベントが定義されている必要があります。
COleControl::FireDblClick
アクティブなコントロールの上でマウスをダブルクリックすると、フレームワークによって呼び出されます。
void FireDblClick();
解説
このイベントがカスタム イベントとして定義されている場合は、イベントが発生するタイミングを決定します。
DblClick イベントの自動起動を発生させるには、コントロールのイベント マップにストック DblClick イベントが定義されている必要があります。
COleControl::FireError
在庫エラー イベントを発生させます。
void FireError(
SCODE scode,
LPCTSTR lpszDescription,
UINT nHelpID = 0);
パラメーター
scode
報告される状態コード値。 使用可能なコードの完全な一覧については、「 ActiveX Controls: Advanced Topics」を参照してください。
lpszDescription
報告されるエラーの説明。
nHelpID
報告されるエラーのヘルプ ID。
解説
このイベントは、コード内の適切な場所で、コントロール内でエラーが発生したことを通知する方法を提供します。 Click や MouseMove などの他のストック イベントとは異なり、フレームワークによってエラーが発生することはありません。
プロパティ取得関数、プロパティ セット関数、またはオートメーション メソッド中に発生したエラーを報告するには、 COleControl::ThrowError を呼び出します。
OLE コントロールの Stock Error イベントの実装では、SCODE 値を使用します。 コントロールでこのイベントを使用し、Visual Basic 4.0 で使用することを意図している場合は、Visual Basic では SCODE 値がサポートされていないため、エラーが発生します。
これを修正するには、コントロールの SCODE パラメーターを手動で変更します。ODL ファイルを long
に変換します。 さらに、SCODE パラメーターを使用するカスタム イベント、メソッド、またはプロパティでも同じ問題が発生します。
COleControl::FireEvent
任意の数の省略可能な引数を使用して、コントロールからユーザー定義イベントを発生させます。
void AFX_CDECL FireEvent(
DISPID dispid,
BYTE* pbParams,
...);
パラメーター
dispid
発生するイベントのディスパッチ ID。
pbParams
イベントのパラメーター型の記述子。
解説
通常、この関数は直接呼び出さないでください。 代わりに、コントロールのクラス宣言のイベント マップ セクションでイベント発生関数を呼び出します。
引数 pbParams は、スペースで区切られた VTS_のリストです。 スペース (コンマではない) で区切られるこれらの値の 1 つ以上は、関数のパラメーター リストを指定します。 使用できる値は次のとおりです。
記号 | パラメーターの型 |
---|---|
VTS_COLOR | OLE_COLOR |
VTS_FONT | IFontDisp* |
VTS_HANDLE | HWND |
VTS_PICTURE | IPictureDisp* |
VTS_OPTEXCLUSIVE | OLE_OPTEXCLUSIVE* |
VTS_TRISTATE | OLE_TRISTATE |
VTS_XPOS_HIMETRIC | OLE_XPOS_HIMETRIC |
VTS_YPOS_HIMETRIC | OLE_YPOS_HIMETRIC |
VTS_XPOS_PIXELS | OLE_XPOS_PIXELS |
VTS_YPOS_PIXELS | OLE_YPOS_PIXELS |
VTS_XSIZE_PIXELS | OLE_XSIZE_PIXELS |
VTS_YSIZE_PIXELS | OLE_XSIZE_PIXELS |
VTS_XSIZE_HIMETRIC | OLE_XSIZE_HIMETRIC |
VTS_YSIZE_HIMETRIC | OLE_XSIZE_HIMETRIC |
Note
バリアント データ定数へのポインターを提供するVTS_FONTとVTS_PICTUREを除き、すべてのバリアント型に対して追加のバリアント定数が定義されています。 これらの定数には、VTS_P<CONSTANT-NAME> 規則を使用して名前が付けられます。 たとえば、VTS_PCOLORはVTS_COLOR定数へのポインターです。
COleControl::FireKeyDown
コントロールが UI アクティブな間にキーが押されたときにフレームワークによって呼び出されます。
void FireKeyDown(
USHORT* pnChar,
short nShiftState);
パラメーター
pnChar
押されたキーの仮想キー コード値へのポインター。 標準的な仮想キー コードの一覧については、Winuser.h を参照してください。
nShiftState
次のフラグの組み合わせが含まれています。
SHIFT_MASK アクション中に Shift キーが押されました。
CTRL_MASK 操作中に Ctrl キーが押されました。
ALT_MASK 操作中に Alt キーが押されました。
解説
このイベントがカスタム イベントとして定義されている場合は、イベントが発生するタイミングを決定します。
KeyDown イベントを自動的に発生させるには、コントロールのイベント マップにストック KeyDown イベントが定義されている必要があります。
COleControl::FireKeyPress
カスタム コントロールがコンテナー内で UI Active である間にキーが押されて離されたときにフレームワークによって呼び出されます。
void FireKeyPress(USHORT* pnChar);
パラメーター
pnChar
押されたキーの文字値へのポインター。
解説
このイベントがカスタム イベントとして定義されている場合は、イベントが発生するタイミングを決定します。
イベントの受信者は、 pnChar を変更できます。たとえば、すべての小文字を大文字に変換します。 変更された文字を調べる場合は、 OnKeyPressEvent
をオーバーライドします。
KeyPress イベントを自動的に発生させるには、コントロールのイベント マップにストック KeyPress イベントが定義されている必要があります。
COleControl::FireKeyUp
カスタム コントロールがコンテナー内で UI アクティブである間にキーが解放されたときにフレームワークによって呼び出されます。
void FireKeyUp(
USHORT* pnChar,
short nShiftState);
パラメーター
pnChar
解放されたキーの仮想キー コード値へのポインター。 標準的な仮想キー コードの一覧については、Winuser.h を参照してください。
nShiftState
次のフラグの組み合わせが含まれています。
SHIFT_MASK アクション中に Shift キーが押されました。
CTRL_MASK 操作中に Ctrl キーが押されました。
ALT_MASK 操作中に Alt キーが押されました。
解説
このイベントがカスタム イベントとして定義されている場合は、イベントが発生するタイミングを決定します。
KeyUp イベントを自動的に発生させるには、コントロールのイベント マップにストック KeyUp イベントが定義されている必要があります。
COleControl::FireMouseDown
アクティブなカスタム コントロールの上にマウス ボタンが押されたときにフレームワークによって呼び出されます。
void FireMouseDown(
short nButton,
short nShiftState,
OLE_XPOS_PIXELS x,
OLE_YPOS_PIXELS y);
パラメーター
nButton
押されたマウス ボタンの数値。 これには、次のいずれかの値を含めることができます。
LEFT_BUTTON マウスの左ボタンが押されました。
MIDDLE_BUTTON マウスの中央ボタンが押されました。
RIGHT_BUTTON マウスの右ボタンが押されました。
nShiftState
次のフラグの組み合わせが含まれています。
SHIFT_MASK アクション中に Shift キーが押されました。
CTRL_MASK 操作中に Ctrl キーが押されました。
ALT_MASK 操作中に Alt キーが押されました。
x
マウス ボタンが押されたときのカーソルの x 座標。 座標は、コントロール ウィンドウの左上隅を基準にしています。
y
マウス ボタンが押されたときのカーソルの y 座標。 座標は、コントロール ウィンドウの左上隅を基準にしています。
解説
このイベントがカスタム イベントとして定義されている場合は、イベントが発生するタイミングを決定します。
MouseDown イベントを自動的に発生させるには、コントロールのイベント マップにストック MouseDown イベントが定義されている必要があります。
COleControl::FireMouseMove
アクティブなカスタム コントロールの上にカーソルが移動されたときにフレームワークによって呼び出されます。
void FireMouseMove(
short nButton,
short nShiftState,
OLE_XPOS_PIXELS x,
OLE_YPOS_PIXELS y);
パラメーター
nButton
押されたマウス ボタンの数値。 次の値の組み合わせが含まれています。
LEFT_BUTTON 操作中にマウスの左ボタンが押されました。
MIDDLE_BUTTON 操作中にマウスの中央ボタンが押されました。
RIGHT_BUTTON 操作中にマウスの右ボタンが押されました。
nShiftState
次のフラグの組み合わせが含まれています。
SHIFT_MASK アクション中に Shift キーが押されました。
CTRL_MASK 操作中に Ctrl キーが押されました。
ALT_MASK 操作中に Alt キーが押されました。
x
カーソルの x 座標。 座標は、コントロール ウィンドウの左上隅を基準にしています。
y
カーソルの y 座標。 座標は、コントロール ウィンドウの左上隅を基準にしています。
解説
このイベントがカスタム イベントとして定義されている場合は、イベントが発生するタイミングを決定します。
MouseMove イベントの自動起動を発生させるには、コントロールのイベント マップにストック MouseMove イベントが定義されている必要があります。
COleControl::FireMouseUp
アクティブなカスタム コントロール上でマウス ボタンが離されたときにフレームワークによって呼び出されます。
void FireMouseUp(
short nButton,
short nShiftState,
OLE_XPOS_PIXELS x,
OLE_YPOS_PIXELS y);
パラメーター
nButton
離されたマウス ボタンの数値。 次のいずれかの値になります。
LEFT_BUTTON マウスの左ボタンが離されました。
MIDDLE_BUTTON マウスの中央ボタンが離されました。
RIGHT_BUTTON マウスの右ボタンが離されました。
nShiftState
次のフラグの組み合わせが含まれています。
SHIFT_MASK アクション中に Shift キーが押されました。
CTRL_MASK 操作中に Ctrl キーが押されました。
ALT_MASK 操作中に Alt キーが押されました。
x
マウス ボタンが離されたときのカーソルの x 座標。 座標は、コントロール ウィンドウの左上隅を基準にしています。
y
マウス ボタンが離されたときのカーソルの y 座標。 座標は、コントロール ウィンドウの左上隅を基準にしています。
解説
このイベントがカスタム イベントとして定義されている場合は、イベントが発生するタイミングを決定します。
MouseUp イベントの自動起動を発生させるには、コントロールのイベント マップにストック MouseUp イベントが定義されている必要があります。
COleControl::FireReadyStateChange
コントロールの準備完了状態の現在の値を持つイベントを発生させます。
void FireReadyStateChange();
解説
準備完了状態には、次のいずれかの値を指定できます。
名前 | 説明 |
---|---|
READYSTATE_UNINITIALIZED | 既定の初期化状態 |
READYSTATE_LOADING | コントロールは現在、そのプロパティを読み込んでいます |
READYSTATE_LOADED | コントロールが初期化されました |
READYSTATE_INTERACTIVE | コントロールには対話型の十分なデータがありますが、すべての非同期データがまだ読み込まれているわけではありません |
READYSTATE_COMPLETE | コントロールにはすべてのデータが含まれます |
GetReadyState を使用して、コントロールの現在の準備状況を判断します。
InternalSetReadyState は準備完了状態を指定された値に変更し、 FireReadyStateChange
を呼び出します。
COleControl::GetActivationPolicy
IPointerInactive
インターフェイスをサポートするコントロールの既定のアクティブ化動作を変更します。
virtual DWORD GetActivationPolicy();
戻り値
POINTERINACTIVE 列挙型からのフラグの組み合わせ。 使用可能なフラグは次のとおりです。
名前 | 説明 |
---|---|
POINTERINACTIVE_ACTIVATEONENTRY | オブジェクトは、マウスの移動操作中にマウスがオブジェクトに入ったときにインプレースでアクティブ化する必要があります。 |
POINTERINACTIVE_DEACTIVATEONLEAVE | オブジェクトは、マウスの移動操作中にマウスがオブジェクトから離れたときに非アクティブ化する必要があります。 |
POINTERINACTIVE_ACTIVATEONDRAG | ドラッグ アンド ドロップ操作中にマウスをドラッグすると、オブジェクトがインプレースアクティブになります。 |
解説
IPointerInactive
インターフェイスが有効になっている場合、コンテナーはWM_SETCURSORを委任し、それにメッセージをWM_MOUSEMOVEします。 COleControl
このインターフェイスの実装では、マウス座標を適切に調整した後、コントロールのメッセージ マップを介してこれらのメッセージがディスパッチされます。
コンテナーは、 IPointerInactive
をサポートする非アクティブなオブジェクトの上にマウス ポインターを持つWM_SETCURSORまたはWM_MOUSEMOVEメッセージを受信するたびに、インターフェイスで GetActivationPolicy
を呼び出し、POINTERINACTIVE 列挙体からフラグを返す必要があります。
これらのメッセージは、通常のウィンドウ メッセージと同様に、対応するエントリをメッセージ マップに追加することで処理できます。 ハンドラーでは、最初に値が NULL 以外であることを確認せずに、 m_hWnd
メンバー変数 (またはそれを使用するメンバー関数) を使用しないようにします。
マウス カーソルの設定やマウスの移動イベントの発生 (特別な視覚的フィードバックなど) を行うことを目的としたオブジェクトは、POINTERINACTIVE_ACTIVATEONENTRY フラグを返し、アクティブな場合にのみフィードバックを描画する必要があります。 オブジェクトがこのフラグを返した場合、コンテナーはすぐにインプレースでアクティブ化し、呼び出しをトリガーしたのと同じメッセージを GetActivationPolicy
に転送する必要があります。
POINTERINACTIVE_ACTIVATEONENTRYフラグとPOINTERINACTIVE_DEACTIVATEONLEAVEフラグの両方が返された場合、オブジェクトはマウスがオブジェクトの上にあるときにのみアクティブになります。 POINTERINACTIVE_ACTIVATEONENTRY フラグのみが返された場合、マウスが最初にオブジェクトに入ったときにオブジェクトは 1 回だけアクティブになります。
非アクティブなコントロールを OLE ドラッグ アンド ドロップ操作の対象にすることもできます。 この場合は、コントロールのウィンドウをドロップ ターゲットとして登録できるようにするために、ユーザーがオブジェクトをコントロール上にドラッグした時点でコントロールをアクティブにする必要があります。 ドラッグ中にアクティブ化を実行するには、POINTERINACTIVE_ACTIVATEONDRAG フラグを返します。
DWORD CMyAxCtrl::GetActivationPolicy()
{
return POINTERINACTIVE_ACTIVATEONDRAG;
}
GetActivationPolicy
によって通信される情報は、コンテナーによってキャッシュされないようにする必要があります。 代わりに、このメソッドは、マウスが非アクティブなオブジェクトに入るたびに呼び出す必要があります。
非アクティブなオブジェクトがマウスの入力時にインプレース アクティブ化を要求しない場合、そのコンテナーは、マウス ポインターがオブジェクトの上に留まる限り、 OnInactiveSetCursor を呼び出して、後続のWM_SETCURSOR メッセージをこのオブジェクトにディスパッチする必要があります。
IPointerInactive
インターフェイスを有効にすることは、通常、コントロールが常にマウス メッセージを処理できるようにしたいことを意味します。 IPointerInactive
インターフェイスをサポートしていないコンテナーでこの動作を取得するには、表示されたときにコントロールを常にアクティブにする必要があります。つまり、コントロールにはその他のフラグの中に OLEMISC_ACTIVATEWHENVISIBLE フラグが必要です。 ただし、IPointerInactive
がサポートされているコンテナーでこのフラグが有効にならないようにするために、OLEMISC_IGNOREACTIVATEWHENVISIBLE フラグを指定することもできます。
static const DWORD BASED_CODE _dwMyOleMisc =
OLEMISC_ACTIVATEWHENVISIBLE |
OLEMISC_IGNOREACTIVATEWHENVISIBLE |
OLEMISC_SETCLIENTSITEFIRST |
OLEMISC_INSIDEOUT |
OLEMISC_CANTLINKINSIDE |
OLEMISC_RECOMPOSEONRESIZE;
COleControl::GetAmbientProperty
コンテナーのアンビエント プロパティの値を取得します。
BOOL GetAmbientProperty(
DISPID dispid,
VARTYPE vtProp,
void* pvProp);
パラメーター
dwDispid
目的のアンビエント プロパティのディスパッチ ID。
vtProp
pvProp で返される値の型を指定するバリアント型タグ。
pvProp
プロパティ値または戻り値を受け取る変数のアドレスへのポインター。 このポインターの実際の型は、 vtProp で指定された型と一致する必要があります。
vtProp | pvProp の種類 |
---|---|
VT_BOOL | BOOL* |
VT_BSTR | CString* |
VT_I2 | short* |
VT_I4 | long* |
VT_R4 | float* |
VT_R8 | double* |
VT_CY | CY* |
VT_COLOR | OLE_COLOR* |
VT_DISPATCH | LPDISPATCH* |
VT_FONT | LPFONTDISP* |
戻り値
アンビエント プロパティがサポートされている場合は 0 以外。それ以外の場合は 0。
解説
GetAmbientProperty
を使用してアンビエント DisplayName プロパティと ScaleUnits プロパティを取得する場合は、vtProp を VT_BSTR に設定し、pvProp をCString*
に設定します。 アンビエント Font プロパティを取得する場合は、 vtProp を VT_FONT に、 pvProp を LPFONTDISP* に設定します。
AmbientBackColor、AmbientFont などの一般的なアンビエント プロパティに対して関数が既に提供されていることに注意してください。
COleControl::GetAppearance
コントロールのストック外観プロパティの Get 関数を実装します。
short GetAppearance ();
戻り値
戻り値は、現在の外観設定を short
(VT_I2) 値として指定します (成功した場合)。 コントロールの外観がフラットの場合、この値は 0、コントロールの外観が 3D の場合は 1 です。
COleControl::GetBackColor
コントロールの stock BackColor プロパティの Get 関数を実装します。
OLE_COLOR GetBackColor();
戻り値
戻り値は、成功した場合、現在の背景色をOLE_COLOR値として指定します。 この値は、 TranslateColor
を呼び出して COLORREF 値に変換できます。
COleControl::GetBorderStyle
コントロールの stock BorderStyle プロパティの Get 関数を実装します。
short GetBorderStyle();
戻り値
コントロールに通常の境界線がある場合は 1。コントロールに罫線がない場合は 0。
COleControl::GetCapture
COleControl
オブジェクトにマウス キャプチャがあるかどうかを判断します。
CWnd* GetCapture();
戻り値
コントロールがアクティブでウィンドウレスの場合は、コントロールに現在マウス キャプチャがある場合は this
を返し、キャプチャがない場合は NULL を返します。
それ以外の場合は、マウス キャプチャ (CWnd::GetCapture
と同じ) を持つCWnd
オブジェクトを返します。
解説
アクティブ化されたウィンドウレス コントロールは、 SetCapture が呼び出されたときにマウス キャプチャを受け取ります。
COleControl::GetClassID
コントロールの OLE クラス ID を取得するためにフレームワークによって呼び出されます。
virtual HRESULT GetClassID(LPCLSID pclsid) = 0;
パラメーター
pclsid
クラス ID の場所へのポインター。
戻り値
呼び出しが成功しなかった場合は 0 以外。それ以外の場合は 0。
解説
通常、 IMPLEMENT_OLECREATE_EXによって実装されます。
COleControl::GetClientOffset
コントロールの四角形領域の左上隅とクライアント領域の左上隅の違いを取得します。
virtual void GetClientOffset(long* pdxOffset, long* pdyOffset) const;
パラメーター
pdxOffset
OLE コントロールのクライアント領域の水平方向のオフセットへのポインター。
pdyOffset
OLE コントロールのクライアント領域の垂直方向のオフセットへのポインター。
解説
OLE コントロールには、コンテナー内に四角形の領域があります。 コントロールのクライアント領域は、罫線とスクロール バーを除くコントロール領域です。 GetClientOffset
によって取得されるオフセットは、コントロールの四角形領域の左上隅とそのクライアント領域の左上隅の差です。 コントロールに標準の罫線とスクロール バー以外のクライアント以外の要素がある場合は、このメンバー関数をオーバーライドしてオフセットを指定します。
COleControl::GetClientRect
コントロールのクライアント領域のサイズを取得します。
virtual void GetClientRect(LPRECT lpRect) const;
パラメーター
lpRect
ウィンドウレス コントロールのクライアント領域の寸法を含む RECT
構造体へのポインター。つまり、コントロールのサイズからウィンドウの境界線、フレーム、スクロール バーなどを引いた値です。 lpRect パラメーターは、コントロールの位置ではなく、コントロールのクライアント四角形のサイズを示します。
COleControl::GetClientSite
コンテナー内の現在のクライアント サイトへのポインターをオブジェクトに照会します。
LPOLECLIENTSITE GetClientSite();
戻り値
コンテナー内のコントロールの現在のクライアント サイトへのポインター。
解説
返されたポインターは、 IOleClientSite
のインスタンスを指します。 コンテナーによって実装される IOleClientSite
インターフェイスは、そのコンテキストのオブジェクトのビューです。ドキュメント内にアンカーが設定され、そこでストレージ、ユーザー インターフェイス、およびその他のリソースが取得されます。
COleControl::GetControlFlags
コントロール フラグの設定を取得します。
virtual DWORD GetControlFlags();
戻り値
ControlFlags 列挙型のフラグの ORed の組み合わせ:
enum ControlFlags {
fastBeginPaint = 0x0001,
clipPaintDC = 0x0002,
pointerInactive = 0x0004,
noFlickerActivate = 0x0008,
windowlessActivate = 0x0010,
canOptimizeDraw = 0x0020,
};
解説
既定では、 GetControlFlags
は fastBeginPaint | clipPaintDC
を返します。
名前 | 説明 |
---|---|
fastBeginPaint |
設定されている場合は、 BeginPaint API (既定で設定) ではなく、OLE コントロール用に調整された begin-paint 関数を使用します。 |
clipPaintDC |
設定されていない場合は、COleControl によって行われたIntersectClipRect の呼び出しを無効にし、小さな速度の利点を得る。 ウィンドウなしのアクティブ化を使用している場合、フラグは無効になります。 |
pointerInactive |
設定すると、既定で無効になっている COleControl インターフェイスの IPointerInactive 実装有効にすることで、コントロールが非アクティブな間にマウス操作を提供します。 |
noFlickerActivate |
設定すると、余分な描画操作とそれに伴う視覚的なちらつきがなくなります。 コントロールが非アクティブ状態とアクティブ状態で同じように描画する場合に使用します。 ウィンドウなしのアクティブ化を使用している場合、フラグは無効になります。 |
windowlessActivate |
設定されている場合は、コントロールでウィンドウなしのアクティブ化が使用されたことを示します。 |
canOptimizeDraw |
設定されている場合は、コンテナーでサポートされている場合、コントロールが最適化された描画を実行することを示します。 |
OLE コントロールの GetControlFlags
およびその他の最適化の詳細については、「 ActiveX コントロール: 最適化」を参照してください。
COleControl::GetControlSize
OLE コントロール ウィンドウのサイズを取得します。
void GetControlSize(
int* pcx,
int* pcy);
パラメーター
pcx
コントロールの幅をピクセル単位で指定します。
pcy
コントロールの高さをピクセル単位で指定します。
解説
コントロール ウィンドウのすべての座標は、コントロールの左上隅を基準にしています。
COleControl::GetDC
ウィンドウレス オブジェクトを提供し、そのコンテナーから画面 (または互換性のある) デバイス コンテキストを取得します。
CDC* GetDC(
LPCRECT lprcRect = NULL,
DWORD dwFlags = OLEDC_PAINTBKGND);
パラメーター
lprcRect
ウィンドウレス コントロールが再描画する四角形へのポインター (コントロールのクライアント座標)。 NULL は、オブジェクト全体のエクステントを意味します。
dwFlags
デバイス コンテキストの描画属性。 選択肢は次のとおりです。
OLEDC_NODRAW オブジェクトがデバイス コンテキストを使用して描画を実行せず、ディスプレイ デバイスに関する情報を取得することだけを示します。 コンテナーは、それ以上の処理を行わずにウィンドウの DC を渡すだけです。
OLEDC_PAINTBKGND DC を返す前に、コンテナーが背景を描画することを要求します。 オブジェクトは、透明な背景を持つ領域を再描画するために DC を要求する場合に、このフラグを使用する必要があります。
OLEDC_OFFSCREEN オブジェクトが画面外ビットマップにレンダリングすることをコンテナーに通知し、その後画面にコピーする必要があります。 オブジェクトは、実行しようとしている描画操作で多くのちらつきが発生する場合に、このフラグを使用する必要があります。 コンテナーは、この要求を自由に受け入れます。 ただし、このフラグが設定されていない場合、コンテナーは画面上の DC を返す必要があります。 これにより、オブジェクトは( XOR 操作を介して)選択を表示するなど、直接画面操作を実行できます。
戻り値
成功した場合は、コンテナー CWnd
クライアント領域の表示デバイス コンテキストへのポインター。それ以外の場合、戻り値は NULL です。 表示デバイス コンテキストは、後続の GDI 関数で使用して、コンテナーのウィンドウのクライアント領域に描画できます。
解説
ReleaseDCメンバー関数を呼び出して、描画後にコンテキストを解放する必要があります。 GetDC
を呼び出すとき、オブジェクトは描画する四角形を独自のクライアント座標で渡します。 GetDC
は、これらをコンテナー クライアント領域の座標に変換します。 オブジェクトは、独自のクライアント領域の四角形よりも大きい必要な描画四角形を要求しないでください。そのサイズは、 GetClientRect で取得できます。 これにより、オブジェクトが意図しない場所に誤って描画されるのを防ぐことができます。
COleControl::GetEnabled
コントロールの stock Enabled プロパティの Get 関数を実装します。
BOOL GetEnabled();
戻り値
コントロールが有効な場合は 0 以外。それ以外の場合は 0。
COleControl::GetExtendedControl
プロパティの拡張セットを持つコントロールを表すコンテナーによって維持されるオブジェクトへのポインターを取得します。
LPDISPATCH GetExtendedControl();
戻り値
コンテナーの拡張コントロール オブジェクトへのポインター。 使用可能なオブジェクトがない場合、値は NULL です。
このオブジェクトは、 IDispatch
インターフェイスを介して操作できます。 QueryInterface
を使用して、オブジェクトによって提供される他の使用可能なインターフェイスを取得することもできます。 ただし、特定のインターフェイス セットをサポートするためにオブジェクトは必要ありません。 コンテナーの拡張コントロール オブジェクトの特定の機能に依存すると、コントロールの移植性が他の任意のコンテナーに制限されることに注意してください。
解説
この関数を呼び出す関数は、オブジェクトの終了時にポインターを解放する役割を担います。 このオブジェクトをサポートするためにコンテナーは必要ありません。
COleControl::GetFocus
COleControl
オブジェクトにフォーカスがあるかどうかを判断します。
CWnd* GetFocus();
戻り値
コントロールがアクティブでウィンドウレスの場合は、現在コントロールにキーボード フォーカスがある場合は this
を返し、フォーカスがない場合は NULL を返します。
それ以外の場合は、(CWnd::GetFocus
と同じ) フォーカスを持つCWnd
オブジェクトを返します。
解説
アクティブ化されたウィンドウレス コントロールは、 SetFocus が呼び出されたときにフォーカスを受け取ります。
COleControl::GetFont
ストック Font プロパティの Get 関数を実装します。
LPFONTDISP GetFont();
戻り値
コントロールの stock Font プロパティのフォント ディスパッチ インターフェイスへのポインター。
解説
終了したら、呼び出し元がオブジェクトを解放する必要があることに注意してください。 コントロールの実装内で、 InternalGetFont
を使用してコントロールのストック Font オブジェクトにアクセスします。 コントロールでフォントを使用する方法の詳細については、「 ActiveX コントロール: ActiveX コントロールでのフォントの使用」を参照してください。
COleControl::GetFontTextMetrics
コントロールが所有するすべての CFontHolder
オブジェクトのテキスト メトリックを測定します。
void GetFontTextMetrics(
LPTEXTMETRIC lptm,
CFontHolder& fontHolder);
パラメーター
lptm
TEXTMETRIC 構造体へのポインター。
fontHolder
CFontHolder オブジェクトへの参照。
解説
このようなフォントは、 COleControl::SelectFontObject 関数で選択できます。 GetFontTextMetrics
は、成功した場合はfontHolder
のフォントに関する有効なメトリック情報を使用してlptm が指すTEXTMETRIC
構造体を初期化するか、成功しなかった場合は構造体にゼロを入力します。 埋め込まれた OLE オブジェクトと同様に、コントロールがメタファイルにレンダリングされる場合があるため、コントロールを描画するときは、 GetTextMetrics の代わりにこの関数を使用する必要があります。
既定のフォントの TEXTMETRIC
構造体は、 SelectFontObject 関数が呼び出されると更新されます。 GetFontTextMetrics
を呼び出す必要があるのは、提供される情報が有効であることを保証するためにストック Font プロパティを選択した後だけです。
COleControl::GetForeColor
ストック ForeColor プロパティの Get 関数を実装します。
OLE_COLOR GetForeColor();
戻り値
戻り値は、成功した場合、現在の前景色をOLE_COLOR値として指定します。 この値は、TranslateColor
を呼び出して COLORREF 値に変換できます。
COleControl::GetHwnd
ストック hWnd プロパティの Get 関数を実装します。
OLE_HANDLE GetHwnd();
戻り値
OLE コントロールのウィンドウ ハンドル (存在する場合)。それ以外の場合は NULL。
COleControl::GetMessageString
フレームワークによって呼び出され、 nID で識別されるメニュー項目の目的を説明する短い文字列を取得します。
virtual void GetMessageString(
UINT nID,
CString& rMessage) const;
パラメーター
nID
メニュー項目 ID。
rMessage
文字列が返される CString オブジェクトへの参照。
解説
これを使用すると、メニュー項目が強調表示されているときにステータス バーに表示するメッセージを取得できます。 既定の実装では、 nID で識別される文字列リソースの読み込みが試行されます。
COleControl::GetNotSupported
ユーザーがコントロールのプロパティ値にアクセスできないようにします。
void GetNotSupported();
解説
コントロールのユーザーによるプロパティの取得がサポートされていないプロパティの Get 関数の代わりに、この関数を呼び出します。 1 つの例として、書き込み専用のプロパティがあります。
COleControl::GetReadyState
コントロールの準備状態を返します。
long GetReadyState();
戻り値
コントロールの準備状態。次のいずれかの値。
名前 | 説明 |
---|---|
READYSTATE_UNINITIALIZED | 既定の初期化状態 |
READYSTATE_LOADING | コントロールは現在、そのプロパティを読み込んでいます |
READYSTATE_LOADED | コントロールが初期化されました |
READYSTATE_INTERACTIVE | コントロールには対話型の十分なデータがありますが、すべての非同期データがまだ読み込まれているわけではありません |
READYSTATE_COMPLETE | コントロールにはすべてのデータが含まれます |
解説
ほとんどの単純なコントロールでは、LOADED と INTERACTIVE を区別する必要はありません。 ただし、データ パスのプロパティをサポートするコントロールは、少なくとも一部のデータが非同期的に受信されるまで、対話型になる準備ができていない場合があります。 コントロールは、できるだけ早く対話形式になるように試みる必要があります。
COleControl::GetRectInContainer
コンテナーに対するコントロールの四角形の座標を、デバイス単位で表して取得します。
BOOL GetRectInContainer(LPRECT lpRect);
パラメーター
lpRect
コントロールの座標がコピーされる四角形構造へのポインター。
戻り値
コントロールがインプレースアクティブの場合は 0 以外。それ以外の場合は 0。
解説
四角形は、コントロールがインプレースアクティブの場合にのみ有効です。
COleControl::GetStockTextMetrics
コントロールの stock Font プロパティのテキスト メトリックを測定します。このプロパティは、 SelectStockFont 関数で選択できます。
void GetStockTextMetrics(LPTEXTMETRIC lptm);
パラメーター
lptm
TEXTMETRIC 構造体へのポインター。
解説
GetStockTextMetrics
関数は、成功した場合は有効なメトリック情報でlptm が指すTEXTMETRIC
構造体を初期化するか、成功しなかった場合は構造体にゼロを入力します。 埋め込み OLE オブジェクトと同様に、コントロールをメタファイルにレンダリングする必要があるため、コントロールを描画する場合は、 GetTextMetrics の代わりにこの関数を使用します。
SelectStockFont
関数が呼び出されると、既定のフォントのTEXTMETRIC
構造が更新されます。 この関数は、ストック フォントを選択した後にのみ呼び出して、提供される情報が有効であることを保証する必要があります。
COleControl::GetText
ストック Text プロパティまたは Caption プロパティの Get 関数を実装します。
BSTR GetText();
戻り値
コントロール テキスト文字列の現在の値。文字列がない場合は長さ 0 の文字列。
Note
BSTR データ型の詳細については、「マクロとグローバル」セクションの「 Data 型 」を参照してください。
解説
リソースを解放するには、この関数の呼び出し元が返された文字列に対して SysFreeString
を呼び出す必要があることに注意してください。 コントロールの実装内で、 InternalGetText
を使用してコントロールのストック Text または Caption プロパティにアクセスします。
COleControl::GetWindowlessDropTarget
ウィンドウなしのコントロールを OLE ドラッグ アンド ドロップ操作のターゲットにする場合は、 GetWindowlessDropTarget
をオーバーライドします。
virtual IDropTarget* GetWindowlessDropTarget();
戻り値
オブジェクトの IDropTarget
インターフェイスへのポインター。 ウィンドウがないため、ウィンドウなしのオブジェクトは IDropTarget
インターフェイスを登録できません。 ただし、ドラッグ アンド ドロップに参加するために、ウィンドウレス オブジェクトは引き続きインターフェイスを実装し、 GetWindowlessDropTarget
で返すことができます。
解説
通常、これを行うには、コントロールのウィンドウがドロップ先として登録されている必要があります。 ただし、コントロールには独自のウィンドウがないため、コンテナーは独自のウィンドウをドロップ ターゲットとして使用します。 コントロールは、コンテナーが適切なタイミングで呼び出しを委任できる IDropTarget
インターフェイスの実装を提供するだけです。 次に例を示します。
IDropTarget *CMyAxCtrl::GetWindowlessDropTarget()
{
m_xDropTarget.AddRef();
return &m_xDropTarget;
}
COleControl::InitializeIIDs
コントロールが使用する IID の基底クラスに通知します。
void InitializeIIDs(
const IID* piidPrimary,
const IID* piidEvents);
パラメーター
piidPrimary
コントロールのプライマリ ディスパッチ インターフェイスのインターフェイス ID へのポインター。
piidEvents
コントロールのイベント インターフェイスのインターフェイス ID へのポインター。
解説
コントロールのコンストラクターでこの関数を呼び出して、コントロールが使用するインターフェイス ID を基底クラスに通知します。
COleControl::InternalGetFont
コントロールの stock Font プロパティにアクセスします。
CFontHolder& InternalGetFont();
戻り値
ストック Font オブジェクトを含む CFontHolder オブジェクトへの参照。
COleControl::InternalGetText
コントロールのストック Text プロパティまたは Caption プロパティにアクセスします。
const CString& InternalGetText();
戻り値
コントロールテキスト文字列への参照。
COleControl::InternalSetReadyState
コントロールの準備状態を設定します。
void InternalSetReadyState(long lNewReadyState);
パラメーター
lNewReadyState
コントロールに設定する準備状態。次のいずれかの値。
名前 | 説明 |
---|---|
READYSTATE_UNINITIALIZED | 既定の初期化状態 |
READYSTATE_LOADING | コントロールは現在、そのプロパティを読み込んでいます |
READYSTATE_LOADED | コントロールが初期化されました |
READYSTATE_INTERACTIVE | コントロールには対話型の十分なデータがありますが、すべての非同期データがまだ読み込まれているわけではありません |
READYSTATE_COMPLETE | コントロールにはすべてのデータが含まれます |
解説
ほとんどの単純なコントロールでは、LOADED と INTERACTIVE を区別する必要はありません。 ただし、データ パスのプロパティをサポートするコントロールは、少なくとも一部のデータが非同期的に受信されるまで、対話型になる準備ができていない場合があります。 コントロールは、できるだけ早く対話形式になるように試みる必要があります。
COleControl::InvalidateControl
コントロール自体を強制的に再描画します。
void InvalidateControl(
LPCRECT lpRect = NULL,
BOOL bErase = TRUE);
パラメーター
lpRect
無効にするコントロールの領域へのポインター。
bErase
更新リージョンの処理時に、更新領域内の背景を消去するかどうかを指定します。
解説
lpRectに NULL 値がある場合は、コントロール全体が再描画されます。 lpRect が NULL でない場合は、無効にするコントロールの四角形の部分を示します。 コントロールにウィンドウがない場合、または現在アクティブでない場合、四角形は無視され、クライアント サイトの IAdviseSink::OnViewChange メンバー関数への呼び出しが行われます。 CWnd::InvalidateRect
またはInvalidateRect
の代わりに、この関数を使用します。
COleControl::InvalidateRgn
指定されたリージョン内のコンテナー ウィンドウのクライアント領域を無効にします。
void InvalidateRgn(CRgn* pRgn, BOOL bErase = TRUE);
パラメーター
pRgn
無効化する OLE オブジェクトの表示領域を、含むウィンドウのクライアント座標で識別する CRgn オブジェクトへのポインター。 このパラメーターが NULL の場合、エクステントはオブジェクト全体になります。
bErase
無効な領域内の背景を消去するかどうかを指定します。 TRUE の場合、背景は消去されます。 FALSE の場合、背景は変更されません。
解説
これは、コンテナー内のウィンドウなしのコントロールを再描画するために使用できます。 無効化されたリージョンは、更新リージョン内の他のすべての領域と共に、次の WM_PAINT メッセージが送信されたときに描画対象としてマークされます。
bEraseが更新リージョンの任意の部分に対して TRUE の場合、指定された部分だけでなく、リージョン全体の背景が消去されます。
COleControl::IsConvertingVBX
OLE コントロールの特殊な読み込みを許可します。
BOOL IsConvertingVBX();
戻り値
コントロールが変換されている場合は 0 以外。それ以外の場合は 0。
解説
VBX コントロールを使用するフォームを OLE コントロールを使用するフォームに変換する場合は、OLE コントロールの特別な読み込みコードが必要になる場合があります。 たとえば、OLE コントロールのインスタンスを読み込む場合、DoPropExchange
でPX_Fontを呼び出す場合があります。
PX_Font(pPX, _T("Font"), *m_pMyFont, &DefaultFont);
ただし、VBX コントロールには Font オブジェクトがありませんでした。各フォント プロパティは個別に保存されました。 この場合は、 IsConvertingVBX
を使用して、次の 2 つのケースを区別します。
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);
}
もう 1 つのケースは、VBX コントロールが (そのVBM_SAVEPROPERTY メッセージ ハンドラーで) 独自のバイナリ データを保存し、OLE コントロールがバイナリ データを別の形式で保存する場合です。 OLE コントロールを VBX コントロールと下位互換性を持たせたい場合は、VBX コントロールと OLE コントロールのどちらが読み込まれているかを区別することで、 IsConvertingVBX
関数を使用して古い形式と新しい形式の両方を読み取ることができます。
コントロールの DoPropExchange
関数では、この条件を確認し、true の場合は、この変換に固有の読み込みコード (前の例など) を実行できます。 コントロールが変換されていない場合は、通常の読み込みコードを実行できます。 この機能は、対応する VBX から変換されるコントロールにのみ適用されます。
COleControl::IsInvokeAllowed
オートメーション メソッドの呼び出しを有効にします。
BOOL IsInvokeAllowed(DISPID dispid);
戻り値
コントロールが初期化されている場合は 0 以外。それ以外の場合は 0。
解説
フレームワークの IDispatch::Invoke
呼び出しの実装 IsInvokeAllowed
、特定の関数 ( dispid
によって識別される) が呼び出される可能性があるかどうかを判断します。 OLE コントロールの既定の動作は、コントロールが初期化されている場合にのみオートメーション メソッドを呼び出せるようにすることです。ただし、 IsInvokeAllowed
は仮想関数であり、必要に応じてオーバーライドされる場合があります (たとえば、コントロールがオートメーション サーバーとして使用されている場合)。
COleControl::IsModified
コントロールの状態が変更されたかどうかを判断します。
BOOL IsModified();
戻り値
コントロールの状態が最後に保存されてから変更された場合は 0 以外。それ以外の場合は 0。
解説
プロパティが値を変更すると、コントロールの状態が変更されます。
COleControl::IsOptimizedDraw
コンテナーが現在の描画操作用に最適化された描画をサポートするかどうかを決定します。
BOOL IsOptimizedDraw();
戻り値
コンテナーが現在の描画操作用に最適化された描画をサポートしている場合は TRUE。それ以外の場合は FALSE。
解説
最適化された描画がサポートされている場合、描画が完了したときに、コントロールはデバイス コンテキストに古いオブジェクト (ペン、ブラシ、フォントなど) を選択する必要はありません。
COleControl::IsSubclassedControl
コントロールが Windows コントロールをサブクラス化するかどうかを判断するためにフレームワークによって呼び出されます。
virtual BOOL IsSubclassedControl();
戻り値
コントロールがサブクラス化されている場合は 0 以外。それ以外の場合は 0。
解説
OLE コントロールが Windows コントロールをサブクラス化する場合は、この関数をオーバーライドして TRUE を返す必要があります。
COleControl::Load
非同期に読み込まれた以前のデータをリセットし、コントロールの非同期プロパティの新しい読み込みを開始します。
void Load(LPCTSTR strNewPath, CDataPathProperty& prop);
パラメーター
strNewPath
非同期コントロール プロパティの絶対位置を参照するパスを含む文字列へのポインター。
支柱
非同期コントロール プロパティを実装する CDataPathProperty オブジェクト。
COleControl::LockInPlaceActive
コンテナーがコントロールを非アクティブ化できないようにします。
BOOL LockInPlaceActive(BOOL bLock);
パラメーター
bLock
コントロールのインプレースアクティブ状態がロックされる場合は TRUE。ロックを解除する場合は FALSE。
戻り値
ロックが成功した場合は 0 以外。それ以外の場合は 0。
解説
コントロールのすべてのロックが完了したら、コントロールのロック解除とペアリングする必要があることに注意してください。 イベントの発生中など、短期間だけコントロールをロックする必要があります。
COleControl::OnAmbientPropertyChange
コンテナーのアンビエント プロパティが値を変更したときにフレームワークによって呼び出されます。
virtual void OnAmbientPropertyChange(DISPID dispid);
パラメーター
dispID
変更されたアンビエント プロパティのディスパッチ ID。複数のプロパティが変更された場合はDISPID_UNKNOWN。
COleControl::OnAppearanceChanged
ストックの Appearance プロパティ値が変更されたときにフレームワークによって呼び出されます。
virtual void OnAppearanceChanged ();
解説
このプロパティの変更後に通知する場合は、この関数をオーバーライドします。 既定の実装では、 InvalidateControl
が呼び出されます。
COleControl::OnBackColorChanged
ストック BackColor プロパティ値が変更されたときにフレームワークによって呼び出されます。
virtual void OnBackColorChanged();
解説
このプロパティの変更後に通知する場合は、この関数をオーバーライドします。 既定の実装では、 InvalidateControl
が呼び出されます。
COleControl::OnBorderStyleChanged
ストック BorderStyle プロパティ値が変更されたときにフレームワークによって呼び出されます。
virtual void OnBorderStyleChanged();
解説
既定の実装では、 InvalidateControl
が呼び出されます。
このプロパティの変更後に通知する場合は、この関数をオーバーライドします。
COleControl::OnClick
マウス ボタンがクリックされたとき、または DoClick ストック メソッドが呼び出されたときにフレームワークによって呼び出されます。
virtual void OnClick(USHORT iButton);
パラメーター
iButton
マウス ボタンのインデックス。 次のいずれかの値になります。
LEFT_BUTTON マウスの左ボタンがクリックされました。
MIDDLE_BUTTON マウスの中央ボタンがクリックされました。
RIGHT_BUTTON マウスの右ボタンがクリックされました。
解説
既定の実装では、 COleControl::FireClick
が呼び出されます。
このメンバー関数をオーバーライドして、既定の処理を変更または拡張します。
COleControl::OnClose
コンテナーがコントロールの IOleControl::Close
関数を呼び出したときにフレームワークによって呼び出されます。
virtual void OnClose(DWORD dwSaveOption);
パラメーター
dwSaveOption
読み込む前にオブジェクトを保存するかどうかを示すフラグ。 有効な値は次の通りです。
OLECLOSE_SAVEIFDIRTY
OLECLOSE_NOSAVE
OLECLOSE_PROMPTSAVE
解説
既定では、コントロール オブジェクト OnClose
変更され、 dwSaveOption がOLECLOSE_SAVEIFDIRTYまたはOLECLOSE_PROMPTSAVEの場合に保存されます。
COleControl::OnDoVerb
コンテナーが IOleObject::DoVerb
メンバー関数を呼び出すときにフレームワークによって呼び出されます。
virtual BOOL OnDoVerb(
LONG iVerb,
LPMSG lpMsg,
HWND hWndParent,
LPCRECT lpRect);
パラメーター
iVerb
呼び出されるコントロール動詞のインデックス。
lpMsg
動詞が呼び出される原因となった Windows メッセージへのポインター。
hWndParent
コントロールの親ウィンドウへのハンドル。 動詞の実行によってウィンドウ (またはウィンドウ) が作成される場合は hWndParent を親として使用する必要があります。
lpRect
コンテナーを基準にしてコントロールの座標をコピーする RECT 構造体へのポインター。
戻り値
呼び出しが成功した場合は 0 以外。それ以外の場合は 0。
解説
既定の実装では、ON_OLEVERBとON_STDOLEVERBメッセージ マップ エントリを使用して、呼び出す適切な関数を決定します。
動詞の既定の処理を変更するには、この関数をオーバーライドします。
COleControl::OnDraw
指定したデバイス コンテキストを使用して、指定した外接する四角形に OLE コントロールを描画するためにフレームワークによって呼び出されます。
virtual void OnDraw(
CDC* pDC,
const CRect& rcBounds,
const CRect& rcInvalid);
パラメーター
pDC
図面が発生するデバイス コンテキスト。
rcBounds
境界線を含むコントロールの四角形領域。
rcInvalid
無効なコントロールの四角形領域。
解説
OnDraw
は通常、画面表示のために呼び出され、画面デバイス コンテキストを pDC として渡します。 rcBounds パラメーターは、ターゲット デバイス コンテキスト (現在のマッピング モードを基準とする) 内の四角形を識別します。 rcInvalid パラメーターは、無効な実際の四角形です。 場合によっては、これは rcBounds よりも小さい領域になります。
COleControl::OnDrawMetafile
指定したメタファイル デバイス コンテキストを使用して、指定した外接する四角形に OLE コントロールを描画するためにフレームワークによって呼び出されます。
virtual void OnDrawMetafile(
CDC* pDC,
const CRect& rcBounds);
パラメーター
pDC
図面が発生するデバイス コンテキスト。
rcBounds
境界線を含むコントロールの四角形領域。
解説
既定の実装では、 OnDraw 関数が呼び出されます。
COleControl::OnEdit
コントロールを UI アクティブにします。
virtual BOOL OnEdit(
LPMSG lpMsg,
HWND hWndParent,
LPCRECT lpRect);
パラメーター
lpMsg
動詞を呼び出した Windows メッセージへのポインター。
hWndParent
コントロールの親ウィンドウへのハンドル。
lpRect
コンテナー内のコントロールによって使用される四角形へのポインター。
戻り値
呼び出しが成功した場合は 0 以外。それ以外の場合は 0。
解説
これは、コントロールのOLEIVERB_UIACTIVATE動詞を呼び出すのと同じ効果があります。
この関数は、通常、ON_OLEVERB メッセージ マップ エントリのハンドラー関数として使用されます。 これにより、コントロールの [オブジェクト] メニューで "Edit" 動詞を使用できるようになります。 次に例を示します。
ON_OLEVERB(AFX_IDS_VERB_EDIT, OnEdit)
COleControl::OnEnabledChanged
ストックの Enabled プロパティ値が変更されたときにフレームワークによって呼び出されます。
virtual void OnEnabledChanged();
解説
このプロパティの変更後に通知する場合は、この関数をオーバーライドします。 既定の実装では、 InvalidateControl を呼び出します。
COleControl::OnEnumVerbs
コンテナーが IOleObject::EnumVerbs
メンバー関数を呼び出すときにフレームワークによって呼び出されます。
virtual BOOL OnEnumVerbs(LPENUMOLEVERB* ppenumOleVerb);
パラメーター
ppenumOleVerb
コントロールの動詞を列挙する IEnumOLEVERB
オブジェクトへのポインター。
戻り値
動詞が使用可能な場合は 0 以外。それ以外の場合は 0。
解説
既定の実装では、メッセージ マップ内のON_OLEVERBエントリが列挙されます。
動詞を列挙する既定の方法を変更するには、この関数をオーバーライドします。
COleControl::OnEventAdvise
イベント ハンドラーが OLE コントロールに接続されているか、OLE コントロールから切断されたときにフレームワークによって呼び出されます。
virtual void OnEventAdvise(BOOL bAdvise);
パラメーター
bAdvise
TRUE は、イベント ハンドラーがコントロールに接続されていることを示します。 FALSE は、イベント ハンドラーがコントロールから切断されたことを示します。
COleControl::OnFontChanged
ストック Font プロパティ値が変更されたときにフレームワークによって呼び出されます。
virtual void OnFontChanged();
解説
既定の実装では、 COleControl::InvalidateControl
が呼び出されます。 コントロールが Windows コントロールをサブクラス化している場合、既定の実装では、WM_SETFONT メッセージもコントロールのウィンドウに送信されます。
このプロパティの変更後に通知する場合は、この関数をオーバーライドします。
例
void CMyAxCtrl::OnFontChanged()
{
// Always set it to the container's font
if (m_MyEdit.m_hWnd != NULL)
{
IFontDisp *pFontDisp = NULL;
IFont *pFont = NULL;
HRESULT hr;
// Get the container's FontDisp interface
pFontDisp = AmbientFont();
if (pFontDisp)
{
hr = pFontDisp->QueryInterface(IID_IFont, (LPVOID*)&pFont);
if (FAILED(hr))
{
pFontDisp->Release();
return;
}
}
HFONT hFont = NULL;
if (pFont)
{
pFont->get_hFont(&hFont);
m_MyEdit.SendMessage(WM_SETFONT, (WPARAM)hFont, 0L);
}
pFontDisp->Release();
}
// Invalidate the control
m_MyEdit.Invalidate();
m_MyEdit.UpdateWindow();
COleControl::OnFontChanged();
}
COleControl::OnForeColorChanged
ストック ForeColor プロパティ値が変更されたときにフレームワークによって呼び出されます。
virtual void OnForeColorChanged();
解説
既定の実装では、 InvalidateControl
が呼び出されます。
このプロパティの変更後に通知する場合は、この関数をオーバーライドします。
COleControl::OnFreezeEvents
コンテナーが IOleControl::FreezeEvents
を呼び出した後、フレームワークによって呼び出されます。
virtual void OnFreezeEvents(BOOL bFreeze);
パラメーター
bFreeze
コントロールのイベント処理が固定されている場合は TRUE。それ以外の場合は FALSE。
解説
既定の実装では、何も行われません。
イベント処理がフリーズまたはフローゼン解除されたときに追加の動作が必要な場合は、この関数をオーバーライドします。
COleControl::OnGetColorSet
コンテナーが IViewObject::GetColorSet
メンバー関数を呼び出すときにフレームワークによって呼び出されます。
virtual BOOL OnGetColorSet(
DVTARGETDEVICE* ptd,
HDC hicTargetDev,
LPLOGPALETTE* ppColorSet);
パラメーター
ptd
画像をレンダリングするターゲット デバイスをポイントします。 この値が NULL の場合、画像は既定のターゲット デバイス (通常はディスプレイ デバイス) に対してレンダリングされます。
hicTargetDev
ptdで示されるターゲット デバイス上の情報コンテキストを指定します。 このパラメーターはデバイス コンテキストにすることができますが、必ずしも 1 つではありません。 ptd が NULL の場合、hicTargetDev も NULL にする必要があります。
ppColorSet
使用する色のセットをコピーする場所へのポインター。 関数がカラー セットを返さない場合は、NULL が返されます。
戻り値
有効なカラー セットが返される場合は 0 以外。それ以外の場合は 0。
解説
コンテナーはこの関数を呼び出して、OLE コントロールを描画するために必要なすべての色を取得します。 コンテナーは、全体的なカラー パレットを設定するために必要な色と組み合わせて取得したカラー セットを使用できます。 既定の実装では FALSE が返されます。
この要求の特別な処理を実行するには、この関数をオーバーライドします。
COleControl::OnGetControlInfo
コントロールのコンテナーがコントロールに関する情報を要求したときにフレームワークによって呼び出されます。
virtual void OnGetControlInfo(LPCONTROLINFO pControlInfo);
パラメーター
pControlInfo
入力する CONTROLINFO 構造体へのポインター。
解説
この情報は、主にコントロールのニーモニック キーの説明で構成されます。 既定の実装では、 pControlInfo に既定の情報が入力されます。
コントロールでニーモニック キーを処理する必要がある場合は、この関数をオーバーライドします。
COleControl::OnGetDisplayString
フレームワークによって呼び出され、 dispidによって識別されるプロパティの現在の値を表す文字列を取得します。
virtual BOOL OnGetDisplayString(
DISPID dispid,
CString& strValue);
パラメーター
dispid
コントロールのプロパティのディスパッチ ID。
strValue
文字列が返される CString オブジェクトへの参照。
戻り値
文字列が strValue で返された場合は 0 以外 。それ以外の場合は 0。
解説
コントロールに値を文字列に直接変換できないプロパティがあり、そのプロパティの値をコンテナー指定のプロパティ ブラウザーに表示する場合は、この関数をオーバーライドします。
COleControl::OnGetInPlaceMenu
コントロールが UI アクティブ化されたときにフレームワークによって呼び出され、コンテナーの既存のメニューにマージされるメニューが取得されます。
virtual HMENU OnGetInPlaceMenu();
戻り値
コントロールのメニューのハンドル。コントロールに何も含まれていない場合は NULL。 既定の実装では、NULL が返されます。
解説
OLE リソースのマージの詳細については、 Menus and Resources (OLE) に関する記事を参照してください。
COleControl::OnGetNaturalExtent
コンテナーの IViewObjectEx::GetNaturalExtent
要求に応答してフレームワークによって呼び出されます。
virtual BOOL OnGetNaturalExtent(
DWORD dwAspect,
LONG lindex,
DVTARGETDEVICE* ptd,
HDC hicTargetDev,
DVEXTENTINFO* pExtentInfo,
LPSIZEL psizel);
パラメーター
dwAspect
オブジェクトがどのように表示されるかを指定します。 表現には、コンテンツ、アイコン、サムネイル、または印刷されたドキュメントが含まれます。 有効な値は、列挙 DVASPECT またはDVASPECT2から取得されます。
lindex
対象となるオブジェクトの部分。 現在、-1 のみが有効です。
ptd
オブジェクトのサイズを返すターゲット デバイスを定義する DVTARGETDEVICE 構造体を指します。
hicTargetDev
オブジェクトがデバイス メトリックを抽出し、デバイスの機能をテストできる、 ptd パラメーターによって示されるターゲット デバイスの情報コンテキストを指定します。 ptdが NULL の場合、オブジェクトは hicTargetDev パラメーターの値を無視する必要があります。
pExtentInfo
サイズ変更データを指定する DVEXTENTINFO
構造体を指します。 DVEXTENTINFO
構造体は次のとおりです。
typedef struct tagExtentInfo
{
UINT cb;
DWORD dwExtentMode;
SIZEL sizelProposed;
} DVEXTENTINFO;
構造体メンバー dwExtentMode
は、次の 2 つの値のいずれかを受け取ることができます。
DVEXTENT_CONTENT コンテンツに合わせてコントロールの大きさを問い合わせる (スナップサイズ)
DVEXTENT_INTEGRAL サイズを変更する場合は、提案されたサイズを制御に渡します
psizel
コントロールによって返されるサイズ変更データを指します。 返されるサイズ変更データは、調整されなかったディメンションに対して -1 に設定されます。
戻り値
正常にサイズを返すか、サイズを調整する場合は 0 以外。それ以外の場合は 0。
解説
この関数をオーバーライドして、DVEXTENTINFO
構造体で提案されたサイズに最も近いオブジェクトの表示サイズ (例テント モードを返します。 既定の実装は FALSE を返し、サイズを調整しません。
COleControl::OnGetPredefinedStrings
プロパティの使用可能な値を表す定義済みの文字列のセットを取得するためにフレームワークによって呼び出されます。
virtual BOOL OnGetPredefinedStrings(
DISPID dispid,
CStringArray* pStringArray,
CDWordArray* pCookieArray);
パラメーター
dispid
コントロールのプロパティのディスパッチ ID。
pStringArray
戻り値を格納する文字列配列。
pCookieArray
戻り値を格納する DWORD 配列。
戻り値
要素が pStringArray および pCookieArray に追加されている場合は 0 以外。
解説
文字列で表すことができる一連の可能な値を持つプロパティがコントロールにある場合は、この関数をオーバーライドします。 pStringArray に追加された各要素について、対応する "cookie" 要素を pCookieArray. に追加する必要があります。これらの "cookie" 値は、後でフレームワークによって COleControl::OnGetPredefinedValue
関数に渡される可能性があります。
COleControl::OnGetPredefinedValue
COleControl::OnGetPredefinedStrings
のオーバーライドによって以前に返された定義済みの文字列のいずれかに対応する値を取得するためにフレームワークによって呼び出されます。
virtual BOOL OnGetPredefinedValue(
DISPID dispid,
DWORD dwCookie,
VARIANT* lpvarOut);
パラメーター
dispid
コントロールのプロパティのディスパッチ ID。
dwCookie
COleControl::OnGetPredefinedStrings
のオーバーライドによって以前に返された Cookie 値。
lpvarOut
プロパティ値が返される VARIANT
構造体へのポインター。
戻り値
lpvarOut で値が返された場合は 0 以外。それ以外の場合は 0。
COleControl::OnGetViewExtent
コンテナーの IViewObject2::GetExtent 要求に応答してフレームワークによって呼び出されます。
virtual BOOL OnGetViewExtent(
DWORD dwDrawAspect,
LONG lindex,
DVTARGETDEVICE* ptd,
LPSIZEL lpsizel);
パラメーター
dwDrawAspect
表示するオブジェクトのフォームまたは側面を記述する DWORD。 有効な値は、列挙 DVASPECT またはDVASPECT2から取得されます。
lindex
対象となるオブジェクトの部分。 現在、-1 のみが有効です。
ptd
オブジェクトのサイズを返すターゲット デバイスを定義する DVTARGETDEVICE 構造体を指します。
lpsizel
オブジェクトのサイズが返される場所を指します。
戻り値
エクステント情報が正常に返された場合は 0 以外。それ以外の場合は 0。
解説
コントロールで 2 パス描画を使用し、不透明な部分と透明な部分の寸法が異なる場合は、この関数をオーバーライドします。
COleControl::OnGetViewRect
コンテナーの IViewObjectEx::GetRect
要求に応答してフレームワークによって呼び出されます。
virtual BOOL OnGetViewRect(DWORD dwAspect, LPRECTL pRect);
パラメーター
dwAspect
表示するオブジェクトのフォームまたは側面を記述する DWORD。 有効な値は、列挙 DVASPECT またはDVASPECT2から取得されます。
オブジェクト全体の外接する四角形をDVASPECT_CONTENTします。 オブジェクトの原点の左上隅と、
GetViewExtent
によって返される範囲と等しいサイズ。DVASPECT_OPAQUE長方形の不透明領域を持つオブジェクトは、その四角形を返します。 他のユーザーは失敗します。
DVASPECT_TRANSPARENT 透明または不規則な部分をすべてカバーする四角形。
pRect
オブジェクトを描画する四角形を指定する RECTL 構造体を指します。 このパラメーターは、オブジェクトの配置とストレッチを制御します。
戻り値
オブジェクトに合わせてサイズ設定された四角形が正常に返された場合は 0 以外。それ以外の場合は 0。
解説
オブジェクトのサイズは、 OnGetViewRect
によって特定の位置から始まる四角形に変換されます (既定値はディスプレイの左上隅です)。 コントロールで 2 パス描画を使用し、不透明な部分と透明な部分の寸法が異なる場合は、この関数をオーバーライドします。
COleControl::OnGetViewStatus
コンテナーの IViewObjectEx::GetViewStatus
要求に応答してフレームワークによって呼び出されます。
virtual DWORD OnGetViewStatus();
戻り値
成功した場合の VIEWSTATUS 列挙の値の 1 つ。それ以外の場合は 0。 使用できる値は、次の任意の組み合わせです。
名前 | 説明 |
---|---|
VIEWSTATUS_OPAQUE | オブジェクトは完全に不透明です。 このビットが設定されていない場合、オブジェクトには透明な部分が含まれます。 このビットはコンテンツ関連の側面にのみ適用され、DVASPECT_ICONやDVASPECT_DOCPRINTには適用されません。 |
VIEWSTATUS_SOLIDBKGND | オブジェクトには、(ブラシ パターンではなく、単色で構成される) 単色の背景があります。 このビットは、VIEWSTATUS_OPAQUEが設定され、コンテンツ関連の側面にのみ適用され、DVASPECT_ICONやDVASPECT_DOCPRINTには適用されない場合にのみ意味があります。 |
VIEWSTATUS_DVASPECTOPAQUE | オブジェクトはDVASPECT_OPAQUEをサポートしています。 描画の側面をパラメーターとして受け取る IViewObjectEx メソッドはすべて、この側面で呼び出すことができます。 |
VIEWSTATUS_DVASPECTTRANSPARENT | オブジェクトはDVASPECT_TRANSPARENTをサポートします。 描画の側面をパラメーターとして受け取る IViewObjectEx メソッドはすべて、この側面で呼び出すことができます。 |
解説
コントロールが 2 パス描画を使用している場合は、この関数をオーバーライドします。 既定の実装では、VIEWSTATUS_OPAQUEが返されます。
COleControl::OnHideToolBars
コントロールが UI 非アクティブ化されたときにフレームワークによって呼び出されます。
virtual void OnHideToolBars();
解説
実装では、 OnShowToolbars
によって表示されるすべてのツール バーを非表示にする必要があります。
COleControl::OnInactiveMouseMove
WM_MOUSEMOVE メッセージの受信時にマウス ポインターの下にある非アクティブなオブジェクトのコンテナーによって呼び出されます。
virtual void OnInactiveMouseMove(
LPCRECT lprcBounds,
long x,
long y,
DWORD dwKeyState);
パラメーター
lprcBounds
オブジェクトの外接する四角形 (含まれているウィンドウのクライアント座標)。 WM_MOUSEMOVE メッセージを受信したときに、画面上の正確な位置とサイズをオブジェクトに通知します。
x
含まれているウィンドウのクライアント座標におけるマウス位置の x 座標。
y
含まれているウィンドウのクライアント座標におけるマウス位置の y 座標。
dwKeyState
キーボードのキーボード修飾子キーの現在の状態を識別します。 有効な値には、MK_CONTROL、MK_SHIFT、MK_ALT、MK_BUTTON、MK_LBUTTON、MK_MBUTTON、およびMK_RBUTTONのいずれかのフラグの組み合わせを指定できます。
解説
ウィンドウ クライアント座標 (ピクセル) は、マウス カーソルの位置を渡すために使用されることに注意してください。 これは、オブジェクトの外接する四角形を同じ座標系で渡すことによっても可能になります。
COleControl::OnInactiveSetCursor
WM_SETCURSOR メッセージの受信時にマウス ポインターの下にある非アクティブなオブジェクトのコンテナーによって呼び出されます。
virtual BOOL OnInactiveSetCursor(
LPCRECT lprcBounds,
long x,
long y,
DWORD dwMouseMsg,
BOOL bSetAlways);
パラメーター
lprcBounds
オブジェクトの外接する四角形 (含まれているウィンドウのクライアント座標)。 WM_SETCURSOR メッセージを受信したときに、画面上の正確な位置とサイズをオブジェクトに通知します。
x
含まれているウィンドウのクライアント座標におけるマウス位置の x 座標。
y
含まれているウィンドウのクライアント座標におけるマウス位置の y 座標。
dwMouseMsg
WM_SETCURSORが発生したマウス メッセージの識別子。
bSetAlways
オブジェクトがカーソルを設定する必要があるかどうかを指定します。 TRUE の場合、オブジェクトはカーソルを設定する必要があります。FALSE の場合、カーソルはカーソルを設定する義務を負いません。その場合はS_FALSEを返す必要があります。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
ウィンドウ クライアント座標 (ピクセル) は、マウス カーソルの位置を渡すために使用されることに注意してください。 これは、オブジェクトの外接する四角形を同じ座標系で渡すことによっても可能になります。
COleControl::OnKeyDownEvent
ストック KeyDown イベントが処理された後にフレームワークによって呼び出されます。
virtual void OnKeyDownEvent(
USHORT nChar,
USHORT nShiftState);
パラメーター
nChar
押されたキーの仮想キー コード値。 標準的な仮想キー コードの一覧については、Winuser.h を参照してください。
nShiftState
次のフラグの組み合わせが含まれています。
SHIFT_MASK アクション中に Shift キーが押されました。
CTRL_MASK 操作中に Ctrl キーが押されました。
ALT_MASK 操作中に Alt キーが押されました。
解説
イベントが発生した後にコントロールがキー情報にアクセスする必要がある場合は、この関数をオーバーライドします。
COleControl::OnKeyPressEvent
ストック KeyPress イベントが発生した後、フレームワークによって呼び出されます。
virtual void OnKeyPressEvent(USHORT nChar);
パラメーター
nChar
押されたキーの仮想キー コード値を格納します。 標準的な仮想キー コードの一覧については、Winuser.h を参照してください。
解説
nChar 値がコンテナーによって変更されている可能性があることに注意してください。
このイベントが発生した後に通知する場合は、この関数をオーバーライドします。
COleControl::OnKeyUpEvent
ストック KeyDown イベントが処理された後にフレームワークによって呼び出されます。
virtual void OnKeyUpEvent(
USHORT nChar,
USHORT nShiftState);
パラメーター
nChar
押されたキーの仮想キー コード値。 標準的な仮想キー コードの一覧については、Winuser.h を参照してください。
nShiftState
次のフラグの組み合わせが含まれています。
SHIFT_MASK アクション中に Shift キーが押されました。
CTRL_MASK 操作中に Ctrl キーが押されました。
ALT_MASK 操作中に Alt キーが押されました。
解説
イベントが発生した後にコントロールがキー情報にアクセスする必要がある場合は、この関数をオーバーライドします。
COleControl::OnMapPropertyToPage
指定したプロパティの編集を実装するプロパティ ページのクラス ID を取得するために、フレームワークによって呼び出されます。
virtual BOOL OnMapPropertyToPage(
DISPID dispid,
LPCLSID lpclsid,
BOOL* pbPageOptional);
パラメーター
dispid
コントロールのプロパティのディスパッチ ID。
lpclsid
クラス ID が返される CLSID
構造体へのポインター。
pbPageOptional
指定したプロパティ ページの使用が省略可能かどうかを示すインジケーターを返します。
戻り値
クラス ID が lpclsid で返された場合は 0 以外、それ以外の場合は 0。
解説
コンテナーのプロパティ ブラウザーからコントロールのプロパティ ページを呼び出す方法を提供するには、この関数をオーバーライドします。
COleControl::OnMnemonic
OLE コントロールのニーモニック キーが押されたことをコンテナーが検出したときにフレームワークによって呼び出されます。
virtual void OnMnemonic(LPMSG pMsg);
パラメーター
pMsg
ニーモニック キーの押下時に生成された Windows メッセージへのポインター。
COleControl::OnProperties
コントロールのプロパティ動詞がコンテナーによって呼び出されたときにフレームワークによって呼び出されます。
virtual BOOL OnProperties(
LPMSG lpMsg,
HWND hWndParent,
LPCRECT lpRect);
パラメーター
lpMsg
動詞を呼び出した Windows メッセージへのポインター。
hWndParent
コントロールの親ウィンドウへのハンドル。
lpRect
コンテナー内のコントロールによって使用される四角形へのポインター。
戻り値
呼び出しが成功した場合は 0 以外。それ以外の場合は 0。
解説
既定の実装では、モーダル プロパティ ダイアログ ボックスが表示されます。
この関数を使用して、コントロールのプロパティ ページを表示することもできます。 OnProperties
関数を呼び出し、hWndParent パラメーターでコントロールの親のハンドルを渡します。 この場合、 lpMsg パラメーターと lpRect パラメーターの値は無視されます。
COleControl::OnQueryHitPoint
コンテナーの IViewObjectEx::QueryHitPoint
要求に応答してフレームワークによって呼び出されます。
virtual BOOL OnQueryHitPoint(
DWORD dwAspect,
LPCRECT pRectBounds,
POINT ptlLoc,
LONG lCloseHint,
DWORD* pHitResult);
パラメーター
dwAspect
オブジェクトの表現方法を指定します。 有効な値は、列挙 DVASPECT またはDVASPECT2から取得されます。
pRectBounds
OLE コントロール クライアント領域の外接する四角形を指定する RECT
構造体へのポインター。
ptlLoc
ヒットをチェックするポイントを指定する POINT
構造体へのポインター。 ポイントは OLE クライアント領域座標で指定されます。
lCloseHint
ヒットをチェックしたポイントに対する "近接" を定義する距離。
pHitResult
ヒット クエリの結果へのポインター。 次のいずれかの値です。
HITRESULT_OUTSIDE ptlLoc は OLE オブジェクトの外部にあり、閉じません。
HITRESULT_TRANSPARENT ptlLoc は OLE オブジェクトの境界内にありますが、イメージに近くはありません。 たとえば、透明な円の中央にある点をHITRESULT_TRANSPARENTできます。
HITRESULT_CLOSE ptlLoc は OLE オブジェクトの内側または外側にありますが、内部と見なされるオブジェクトに十分に近いです。 小さい、薄い、または詳細なオブジェクトでは、この値を使用できます。 ポイントがオブジェクトの外接する四角形の外側にある場合でも、その点は閉じられている可能性があります (これは小さなオブジェクトにヒットするために必要です)。
HITRESULT_HIT ptlLoc はオブジェクトのイメージ内にあります。
戻り値
ヒット結果が正常に返された場合は 0 以外。それ以外の場合は 0。 ヒットは、OLE コントロールの表示領域と重複しています。
解説
オブジェクトの表示四角形が指定されたポイントと重なる (ポイントにヒットする) かどうかをクエリします。 QueryHitPoint
は、四角形以外のオブジェクトのヒットをテストするためにオーバーライドできます。
COleControl::OnQueryHitRect
コンテナーの IViewObjectEx::QueryHitRect
要求に応答してフレームワークによって呼び出されます。
virtual BOOL OnQueryHitRect(
DWORD dwAspect,
LPCRECT pRectBounds,
LPCRECT prcLoc,
LONG lCloseHint,
DWORD* pHitResult);
パラメーター
dwAspect
オブジェクトがどのように表示されるかを指定します。 有効な値は、列挙 DVASPECT またはDVASPECT2から取得されます。
pRectBounds
OLE コントロール クライアント領域の外接する四角形を指定する RECT
構造体へのポインター。
prcLoc
オブジェクトの左上隅を基準にして、ヒットのチェック対象の四角形 (オブジェクトの四角形と重なり合う) を指定する RECT
構造体へのポインター。
lCloseHint
未使用。
pHitResult
ヒット クエリの結果へのポインター。 次のいずれかの値です。
HITRESULT_OUTSIDE、四角形内のポイントが OLE オブジェクトにヒットしません。
四角形HITRESULT_HIT少なくとも 1 つのポイントがオブジェクトにヒットします。
戻り値
ヒット結果が正常に返された場合は 0 以外。それ以外の場合は 0。
解説
オブジェクトの表示四角形が、指定された四角形内の任意のポイントと重なる (四角形にヒットする) かどうかをクエリします。 QueryHitRect
は、四角形以外のオブジェクトのヒットをテストするためにオーバーライドできます。
COleControl::OnRenderData
指定した形式のデータを取得するためにフレームワークによって呼び出されます。
virtual BOOL OnRenderData(
LPFORMATETC lpFormatEtc,
LPSTGMEDIUM lpStgMedium);
パラメーター
lpFormatEtc
情報が要求される形式を指定する FORMATETC 構造体を参照します。
lpStgMedium
データが返される STGMEDIUM 構造体を参照します。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
指定した形式は、遅延レンダリング用の DelayRenderData または DelayRenderFileData メンバー関数を使用して、コントロール オブジェクトに以前に配置された形式です。 指定されたストレージ メディアがファイルまたはメモリである場合、この関数の既定の実装では、それぞれ OnRenderFileData
または OnRenderGlobalData
が呼び出されます。 要求された形式がCF_METAFILEPICTまたは永続的なプロパティ セット形式の場合、既定の実装では適切なデータがレンダリングされ、0 以外の値が返されます。 それ以外の場合は、0 を返し、何もしません。
lpStgMedium->tymedがTYMED_NULLされている場合は、stGMEDIUM を割り当て、lpFormatEtc->tymed で指定されているように入力する必要があります。 TYMED_NULLしない場合は、STGMEDIUM にデータを入力する必要があります。
この関数をオーバーライドして、要求された形式とメディアでデータを提供します。 データによっては、代わりにこの関数の他のバージョンの 1 つをオーバーライドすることもできます。 データが小さく、サイズが固定されている場合は、OnRenderGlobalData
をオーバーライドします。 データがファイル内にある場合、またはサイズが可変の場合は、OnRenderFileData
をオーバーライドします。
詳細については、Windows SDK の FORMATETC
および STGMEDIUM
構造体を参照してください。
COleControl::OnRenderFileData
ストレージ メディアがファイルである場合に、指定した形式のデータを取得するためにフレームワークによって呼び出されます。
virtual BOOL OnRenderFileData(
LPFORMATETC lpFormatEtc,
CFile* pFile);
パラメーター
lpFormatEtc
情報が要求される形式を指定する FORMATETC 構造体を参照します。
pFile
データがレンダリングされる CFile オブジェクトを参照します。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
指定した形式は、遅延レンダリング用の DelayRenderData メンバー関数を使用して、コントロール オブジェクトに以前に配置された形式です。 この関数の既定の実装では、単に FALSE が返されます。
この関数をオーバーライドして、要求された形式とメディアでデータを提供します。 データによっては、代わりにこの関数の他のバージョンの 1 つをオーバーライドすることもできます。 複数のストレージ メディアを処理する場合は、 OnRenderData
をオーバーライドします。 データがファイル内にある場合、またはサイズが可変の場合は、OnRenderFileData
をオーバーライドします。
詳細については、Windows SDK の FORMATETC
構造を参照してください。
COleControl::OnRenderGlobalData
指定したストレージ メディアがグローバル メモリである場合に、指定した形式でデータを取得するために、フレームワークによって呼び出されます。
virtual BOOL OnRenderGlobalData(
LPFORMATETC lpFormatEtc,
HGLOBAL* phGlobal);
パラメーター
lpFormatEtc
情報が要求される形式を指定する FORMATETC 構造体を参照します。
phGlobal
データが返されるグローバル メモリへのハンドルを参照します。 メモリが割り当てられていない場合、このパラメーターは NULL にすることができます。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
指定した形式は、遅延レンダリング用の DelayRenderData メンバー関数を使用して、コントロール オブジェクトに以前に配置された形式です。 この関数の既定の実装では、単に FALSE が返されます。
phGlobal が NULL の場合は、新しい HGLOBAL を割り当て、phGlobal で返す必要があります。 それ以外の場合は、phGlobal によって指定された HGLOBAL にデータを入力する必要があります。 HGLOBAL に配置されるデータの量は、メモリ ブロックの現在のサイズを超えてはなりません。 また、ブロックをより大きなサイズに再割り当てすることはできません。
この関数をオーバーライドして、要求された形式とメディアでデータを提供します。 データによっては、代わりにこの関数の他のバージョンの 1 つをオーバーライドすることもできます。 複数のストレージ メディアを処理する場合は、 OnRenderData
をオーバーライドします。 データがファイル内にある場合、またはサイズが可変の場合は、OnRenderFileData
をオーバーライドします。
詳細については、Windows SDK の FORMATETC
構造を参照してください。
COleControl::OnResetState
コントロールのプロパティを既定値に設定する必要がある場合に、フレームワークによって呼び出されます。
virtual void OnResetState();
解説
既定の実装では、 DoPropExchange を呼び出し、プロパティを既定値に設定する CPropExchange
オブジェクトを渡します。
コントロール ライターは、このオーバーライド可能な OLE コントロールの初期化コードを挿入できます。 この関数は、 IPersistStream::Load または IPersistStorage::Load が失敗するか、 IPersistStreamInit::InitNew または IPersistStorage::InitNew が呼び出されたときに、最初に IPersistStream::Load
または IPersistStorage::Load
を呼び出さずに呼び出されます。
COleControl::OnSetClientSite
コンテナーがコントロールの IOleControl::SetClientSite
関数を呼び出したときにフレームワークによって呼び出されます。
virtual void OnSetClientSite();
解説
既定では、 OnSetClientSite
はデータ パスのプロパティが読み込まれているかどうかを確認し、読み込まれている場合は DoDataPathPropExchange
を呼び出します。
この通知の特別な処理を実行するには、この関数をオーバーライドします。 特に、この関数のオーバーライドは基底クラスを呼び出す必要があります。
COleControl::OnSetData
コントロールのデータを指定されたデータに置き換えるためにフレームワークによって呼び出されます。
virtual BOOL OnSetData(
LPFORMATETC lpFormatEtc,
LPSTGMEDIUM lpStgMedium,
BOOL bRelease);
パラメーター
lpFormatEtc
データの形式を指定する FORMATETC 構造体へのポインター。
lpStgMedium
データが存在する STGMEDIUM 構造体へのポインター。
bRelease
コントロールがストレージ メディアを解放する必要がある場合は TRUE。コントロールがストレージ メディアを解放しない場合は FALSE。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
データが永続的なプロパティ セット形式の場合、既定の実装では、それに応じてコントロールの状態が変更されます。 それ以外の場合、既定の実装では何も行われません。 bRelease が TRUE の場合、ReleaseStgMedium
の呼び出しが行われます。それ以外の場合は呼び出されません。
コントロールのデータを指定したデータに置き換えるには、この関数をオーバーライドします。
詳細については、Windows SDK の FORMATETC
および STGMEDIUM
構造体を参照してください。
COleControl::OnSetExtent
IOleObject::SetExtent の呼び出しの結果として、コントロールのエクステントを変更する必要がある場合にフレームワークによって呼び出されます。
virtual BOOL OnSetExtent(LPSIZEL lpSizeL);
パラメーター
lpSizeL
長整数を使用してコントロールの幅と高さを HIMETRIC 単位で表す、 SIZEL
構造体へのポインター。
戻り値
サイズの変更が受け入れられた場合は 0 以外。それ以外の場合は 0。
解説
既定の実装では、コントロールのエクステントのサイズ変更が処理されます。 コントロールがインプレース アクティブの場合は、コンテナーの OnPosRectChanged
の呼び出しが行われます。
コントロールの既定のサイズ変更を変更するには、この関数をオーバーライドします。
COleControl::OnSetObjectRects
IOleInPlaceObject::SetObjectRects への呼び出しを実装するためにフレームワークによって呼び出されます。
virtual BOOL OnSetObjectRects(
LPCRECT lpRectPos,
LPCRECT lpRectClip);
パラメーター
lpRectPos
コンテナーに対するコントロールの新しい位置とサイズを示す RECT
構造体へのポインター。
lpRectClip
コントロールをクリップする四角形の領域を示す RECT
構造体へのポインター。
戻り値
位置変更が受け入れられた場合は 0 以外。それ以外の場合は 0。
解説
既定の実装では、コントロール ウィンドウの位置変更とサイズ変更が自動的に処理され、TRUE が返されます。
この関数の既定の動作を変更するには、この関数をオーバーライドします。
COleControl::OnShowToolBars
コントロールが UI アクティブ化されたときにフレームワークによって呼び出されます。
virtual void OnShowToolBars();
解説
既定の実装では、何も行われません。
COleControl::OnTextChanged
ストック キャプションまたは Text プロパティ値が変更されたときにフレームワークによって呼び出されます。
virtual void OnTextChanged();
解説
既定の実装では、 InvalidateControl
が呼び出されます。
このプロパティの変更後に通知する場合は、この関数をオーバーライドします。
COleControl::OnWindowlessMessage
コンテナーの IOleInPlaceObjectWindowless::OnWindowMessage
要求に応答してフレームワークによって呼び出されます。
virtual BOOL OnWindowlessMessage(
UINT msg,
WPARAM wParam,
LPARAM lParam,
LRESULT* plResult);
パラメーター
msg
Windows によって渡されるメッセージ識別子。
wParam
Windows によって渡されます。 追加のメッセージ固有の情報を指定します。 このパラメーターの内容は、 msg パラメーターの値によって異なります。
lParam
Windows によって渡されます。 追加のメッセージ固有の情報を指定します。 このパラメーターの内容は、 msg パラメーターの値によって異なります。
plResult
Windows の結果コード。 メッセージ処理の結果を指定し、送信されるメッセージに依存します。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
ウィンドウレス コントロールのウィンドウ メッセージを処理します。 COleControl
の OnWindowlessMessage
は、マウス メッセージやキーボード メッセージ以外のウィンドウ メッセージに使用する必要があります。 COleControl
SetCapture および SetFocus ウィンドウレス OLE オブジェクトのマウス キャプチャとキーボード フォーカスを取得するために用意されています。
ウィンドウなしのオブジェクトにはウィンドウがないため、コンテナーがメッセージをディスパッチできるようにするメカニズムが必要です。 ウィンドウレス OLE オブジェクトは、IOleInPlaceObjectWindowless
インターフェイスの OnWindowMessage
メソッド (ウィンドウレス サポート用の IOleInPlaceObject の拡張機能) を使用して、コンテナーからメッセージを取得します。 OnWindowMessage
は、 HWND
パラメーターを受け取りません。
COleControl::P arentToClient
pPoint の座標をクライアント座標に変換します。
virtual UINT ParentToClient(
LPCRECT lprcBounds,
LPPOINT pPoint,
BOOL bHitTest = FALSE) const;
パラメーター
lprcBounds
コンテナー内の OLE コントロールの境界へのポインター。 クライアント領域ではなく、罫線やスクロール バーを含むコントロール全体の領域。
pPoint
コントロールのクライアント領域の座標に変換される親 (コンテナー) ポイントへのポインター。
bHitTest
ヒット テストをポイントで実行するかどうかを指定します。
戻り値
bHitTest が FALSE の場合は、HTNOWHERE を返します。 bHitTest が TRUE の場合は、OLE コントロールのクライアント領域に親 (コンテナー) ポイントが配置され、次のマウス ヒット テスト値のいずれかである位置を返します。
HTBORDER サイズ設定の境界線がないウィンドウの境界線内。
HTBOTTOM ウィンドウの下の水平境界線。
HTBOTTOMLEFT ウィンドウの境界線の左下隅。
HTBOTTOMRIGHT ウィンドウの境界線の右下隅に表示されます。
HTCAPTION タイトル バー領域。
HTCLIENT クライアント領域。
HTERROR 画面の背景またはウィンドウ間の分割線上 (
DefWndProc
Windows 関数がエラーを示すシステム ビープ音を生成する点を除き、HTNOWHERE と同じです)。HTGROWBOX サイズ ボックス内。
HTHSCROLL 水平スクロール バー。
HTLEFT ウィンドウの左罫線内。
[最大化] ボタンの HTMAXBUTTON。
HTMENU メニュー領域。
最小化ボタンの HTMINBUTTON。
HTNOWHERE 画面の背景またはウィンドウ間の分割線上。
[最小化] ボタン内の HTREDUCE。
HTRIGHT ウィンドウの右側の境界線。
HTSIZE サイズ ボックス (HTGROWBOX と同じ)。
HTSYSMENU コントロール メニューまたは子ウィンドウの [閉じる] ボタン。
HTTOP ウィンドウの上の水平境界線。
HTTOPLEFT ウィンドウの境界線の左上隅。
HTTOPRIGHT ウィンドウの境界線の右上隅。
HTTRANSPARENT 現在別のウィンドウでカバーされているウィンドウ内。
HTVSCROLL 垂直スクロール バー。
[最大化] ボタンの HTZOOM。
解説
入力 pPoint では は親の原点 (コンテナーの左上隅) を基準としています。 出力 pPoint では は OLE コントロールのクライアント領域 (コントロールのクライアント領域の左上隅) の原点を基準とします。
COleControl::P ostModalDialog
モーダル ダイアログ ボックスが閉じられたことをコンテナーに通知します。
void PostModalDialog(HWND hWndParent = NULL);
パラメーター
hWndParent
モーダル ダイアログ ボックスの親ウィンドウへのハンドル。
解説
モーダル ダイアログ ボックスを表示した後、この関数を呼び出します。 この関数を呼び出して、コンテナーが PreModalDialog
によって無効になっている最上位のウィンドウを有効にできるようにする必要があります。 この関数は、 PreModalDialog
の呼び出しとペアにする必要があります。
COleControl::P reModalDialog
モーダル ダイアログ ボックスが表示されようとしていることをコンテナーに通知します。
void PreModalDialog(HWND hWndParent = NULL);
パラメーター
hWndParent
モーダル ダイアログ ボックスの親ウィンドウへのハンドル。
解説
モーダル ダイアログ ボックスを表示する前に、この関数を呼び出します。 コンテナーが最上位のすべてのウィンドウを無効にできるように、この関数を呼び出す必要があります。 モーダル ダイアログ ボックスが表示されたら、 PostModalDialog
を呼び出す必要があります。
COleControl::RecreateControlWindow
コントロールのウィンドウを破棄して再作成します。
void RecreateControlWindow();
解説
これは、ウィンドウのスタイル ビットを変更する必要がある場合に必要になる場合があります。
COleControl::Refresh
OLE コントロールを強制的に再描画します。
void Refresh();
解説
この関数は、refresh と呼ばれるストック メソッドとして、 COleControl
基底クラスでサポートされています。 これにより、OLE コントロールのユーザーは、特定の時刻にコントロールを再描画できます。 このメソッドの詳細については、「 ActiveX コントロール: メソッド」を参照してください。
COleControl::ReleaseCapture
マウス キャプチャを解放します。
BOOL ReleaseCapture();
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
コントロールに現在マウス キャプチャがある場合、キャプチャは解放されます。 それ以外の場合、この関数は効果がありません。
COleControl::ReleaseDC
ウィンドウレス コントロールのコンテナーの表示デバイス コンテキストを解放し、他のアプリケーションで使用するデバイス コンテキストを解放します。
int ReleaseDC(CDC* pDC);
パラメーター
pDC
解放するコンテナー デバイス コンテキストを識別します。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
アプリケーションは、GetDC の呼び出しごとにReleaseDC
を呼び出す必要があります。
COleControl::ReparentControlWindow
コントロールの親を設定します。
virtual void ReparentControlWindow(
HWND hWndOuter,
HWND hWndParent);
パラメーター
hWndOuter
コントロール ウィンドウのハンドル。
hWndParent
新しい親ウィンドウのハンドル。
解説
コントロール ウィンドウの親をリセットするには、この関数を呼び出します。
COleControl::ResetStockProps
COleControl
ストック プロパティの状態を既定値に初期化します。
void ResetStockProps();
解説
プロパティは、Appearance、BackColor、BorderStyle、Caption、Enabled、Font、ForeColor、hWnd、Text です。 ストック プロパティの詳細については、「 ActiveX コントロール: ストック プロパティの追加」を参照してください。
ResetStockProps
とResetVersion
を使用してCOleControl::OnResetState
をオーバーライドすることで、コントロールのバイナリ初期化のパフォーマンスを向上させることができます。 次の例を見てください。 初期化の最適化の詳細については、「 ActiveX コントロール: 最適化」を参照してください。
例
void CMyAxCtrl::OnResetState()
{
ResetVersion(MAKELONG(_wVerMinor, _wVerMajor));
ResetStockProps();
// initialize custom properties here
}
COleControl::ResetVersion
バージョン番号を指定した値に初期化します。
void ResetVersion(DWORD dwVersionDefault);
パラメーター
dwVersionDefault
コントロールに割り当てるバージョン番号。
解説
ResetVersion
とResetStockProps
を使用してCOleControl::OnResetState
をオーバーライドすることで、コントロールのバイナリ初期化のパフォーマンスを向上させることができます。 ResetStockProps の例を参照してください。 初期化の最適化の詳細については、「 ActiveX コントロール: 最適化」を参照してください。
COleControl::ScrollWindow
ウィンドウなしの OLE オブジェクトが、画面上のインプレースアクティブイメージ内の領域をスクロールできるようにします。
void ScrollWindow(
int xAmount,
int yAmount,
LPCRECT lpRect = NULL,
LPCRECT lpClipRect = NULL);
パラメーター
xAmount
水平スクロールの量をデバイス単位で指定します。 左にスクロールするには、このパラメーターに負の値を指定する必要があります。
yAmount
垂直方向のスクロールの量をデバイス単位で指定します。 このパラメーターは、上にスクロールするには負の値である必要があります。
lpRect
スクロールする OLE オブジェクトのクライアント領域の部分を含むウィンドウのクライアント座標で指定する、 CRect オブジェクトまたは RECT 構造体を指します。 lpRect が NULL の場合、OLE オブジェクトのクライアント領域全体がスクロールされます。
lpClipRect
クリップ先の四角形を指定する CRect
オブジェクトまたは RECT
構造体を指します。 四角形内のピクセルのみがスクロールされます。 四角形の外側のビットは、 lpRect の四角形内にある場合でも影響を受けません。 lpClipRect が NULL の場合、スクロール四角形に対してクリッピングは実行されません。
COleControl::SelectFontObject
デバイス コンテキストにフォントを選択します。
CFont* SelectFontObject(
CDC* pDC,
CFontHolder& fontHolder);
パラメーター
pDC
デバイス コンテキスト オブジェクトへのポインター。
fontHolder
選択するフォントを表す CFontHolder オブジェクトへの参照。
戻り値
以前に選択したフォントへのポインター。 呼び出し元が fontHolder を使用するすべての描画操作を完了したら、CDC::SelectObject のパラメーターとして渡して、以前に選択したフォントを再選択する必要があります。
COleControl::SelectStockFont
デバイス コンテキストにストック Font プロパティを選択します。
CFont* SelectStockFont(CDC* pDC);
パラメーター
pDC
フォントを選択するデバイス コンテキスト。
戻り値
以前に選択した CFont
オブジェクトへのポインター。 完了したら、 CDC::SelectObject を使用して、このフォントをデバイス コンテキストに戻す必要があります。
COleControl::SerializeExtent
コントロールに割り当てられている表示領域の状態をシリアル化または初期化します。
void SerializeExtent(CArchive& ar);
パラメーター
ar
シリアル化の対象となる CArchive
オブジェクト。
解説
SerializeExtent
、SerializeStockProps
、SerializeVersion
を使用してCOleControl::Serialize
をオーバーライドすることで、コントロールのバイナリ永続化のパフォーマンスを向上させることができます。 次の例を見てください。 初期化の最適化の詳細については、「 ActiveX コントロール: 最適化」を参照してください。
例
void CMyAxCtrl::Serialize(CArchive &ar)
{
SerializeVersion(ar, MAKELONG(_wVerMinor, _wVerMajor));
SerializeExtent(ar);
SerializeStockProps(ar);
if (ar.IsStoring())
{ // storing code
}
else
{ // loading code
}
}
COleControl::SerializeStockProps
外観、BackColor、BorderStyle、Caption、Enabled、Font、ForeColor、Text の COleControl
ストック プロパティの状態をシリアル化または初期化します。
void SerializeStockProps(CArchive& ar);
パラメーター
ar
シリアル化の対象となる CArchive
オブジェクト。
解説
ストック プロパティの詳細については、「 ActiveX コントロール: ストック プロパティの追加」を参照してください。
SerializeStockProps
、SerializeExtent
、SerializeVersion
を使用してCOleControl::Serialize
をオーバーライドすることで、コントロールのバイナリ永続化のパフォーマンスを向上させることができます。 例については、 SerializeExtent のコードを参照してください。 初期化の最適化の詳細については、「 ActiveX コントロール: 最適化」を参照してください。
COleControl::SerializeVersion
コントロールのバージョン情報の状態をシリアル化または初期化します。
DWORD SerializeVersion(
CArchive& ar,
DWORD dwVersionDefault,
BOOL bConvert = TRUE);
パラメーター
ar
シリアル化の対象となる CArchive
オブジェクト。
dwVersionDefault
コントロールの現在のバージョン番号。
bConvert
永続データを保存時に最新の形式に変換するか、読み込み時と同じ形式で保持するかを示します。
戻り値
コントロールのバージョン番号。 指定したアーカイブが読み込まれている場合、 SerializeVersion
はそのアーカイブから読み込まれたバージョンを返します。 それ以外の場合は、現在読み込まれているバージョンが返されます。
解説
SerializeVersion
、SerializeExtent
、SerializeStockProps
を使用してCOleControl::Serialize
をオーバーライドすることで、コントロールのバイナリ永続化のパフォーマンスを向上させることができます。 例については、 SerializeExtent のコードを参照してください。 初期化の最適化の詳細については、「 ActiveX コントロール: 最適化」を参照してください。
COleControl::SetAppearance
コントロールのストックの Appearance プロパティ値を設定します。
void SetAppearance (short sAppearance);
パラメーター
sAppearance
コントロールの外観に使用する short
(VT_I2) 値。 値が 0 の場合、コントロールの外観はフラットに設定され、値 1 はコントロールの外観を 3D に設定します。
解説
ストック プロパティの詳細については、「 ActiveX コントロール: プロパティ」を参照してください。
COleControl::SetBackColor
コントロールのストック BackColor プロパティ値を設定します。
void SetBackColor(OLE_COLOR dwBackColor);
パラメーター
dwBackColor
コントロールの背景描画に使用するOLE_COLOR値。
解説
このプロパティとその他の関連プロパティの使用の詳細については、「 ActiveX コントロール: プロパティ」を参照してください。
COleControl::SetBorderStyle
コントロールのストック BorderStyle プロパティ値を設定します。
void SetBorderStyle(short sBorderStyle);
パラメーター
sBorderStyle
コントロールの新しい境界線スタイル。0 は罫線がないことを示し、1 は通常の罫線を示します。
解説
その後、コントロール ウィンドウが再作成され、 OnBorderStyleChanged
呼び出されます。
COleControl::SetCapture
コントロールのコンテナー ウィンドウがコントロールの代わりにマウス キャプチャを所有するようにします。
CWnd* SetCapture();
戻り値
以前にマウス入力を受け取った CWnd
ウィンドウ オブジェクトへのポインター。
解説
コントロールがアクティブでウィンドウレスの場合、この関数はコントロールの代わりに、コントロールのコンテナー ウィンドウにマウス キャプチャを所有させます。 それ以外の場合、この関数により、コントロール自体がマウス キャプチャを取得します ( CWnd::SetCapture
と同じです)。
COleControl::SetControlSize
OLE コントロール ウィンドウのサイズを設定し、コントロール サイトが変更されていることをコンテナーに通知します。
BOOL SetControlSize(int cx, int cy);
パラメーター
cx
コントロールの新しい幅をピクセル単位で指定します。
cy
コントロールの新しい高さをピクセル単位で指定します。
戻り値
呼び出しが成功した場合は 0 以外。それ以外の場合は 0。
解説
この関数は、コントロールのコンストラクターでは使用しないでください。
コントロール ウィンドウのすべての座標は、コントロールの左上隅を基準にしています。
COleControl::SetEnabled
コントロールのストック Enabled プロパティ値を設定します。
void SetEnabled(BOOL bEnabled);
パラメーター
bEnabled
コントロールを有効にする場合は TRUE。それ以外の場合は FALSE。
解説
このプロパティを設定すると、 OnEnabledChange
が呼び出されます。
COleControl::SetFocus
コントロールのコンテナー ウィンドウがコントロールの代わりに入力フォーカスを所有するようにします。
CWnd* SetFocus();
戻り値
以前に入力フォーカスを持っていた CWnd
ウィンドウ オブジェクトへのポインター。そのようなウィンドウがない場合は NULL。
解説
コントロールがアクティブでウィンドウレスの場合、この関数により、コントロールの代わりに、コントロールのコンテナー ウィンドウが入力フォーカスを取得します。 入力フォーカスにより、キーボード入力がコンテナーのウィンドウに送られ、コンテナーは後続のすべてのキーボード メッセージを、 SetFocus
を呼び出す OLE オブジェクトにディスパッチします。 以前に入力フォーカスが設定されていたウィンドウでは、そのウィンドウは失われます。
コントロールがウィンドウレスでない場合、この関数により、コントロール自体が入力フォーカスを取得します ( CWnd::SetFocus
と同じです)。
COleControl::SetFont
コントロールのストック Font プロパティを設定します。
void SetFont(LPFONTDISP pFontDisp);
パラメーター
pFontDisp
フォント ディスパッチ インターフェイスへのポインター。
COleControl::SetForeColor
コントロールのストック ForeColor プロパティ値を設定します。
void SetForeColor(OLE_COLOR dwForeColor);
パラメーター
dwForeColor
コントロールの前景描画に使用するOLE_COLOR値。
解説
このプロパティとその他の関連プロパティの使用の詳細については、「 ActiveX コントロール: プロパティ」を参照してください。
COleControl::SetInitialDataFormats
コントロールでサポートされているデータ形式の一覧を初期化するためにフレームワークによって呼び出されます。
virtual void SetInitialDataFormats();
解説
既定の実装では、CF_METAFILEPICTと永続的なプロパティ セットの 2 つの形式を指定します。
COleControl::SetInitialSize
コンテナーに初めて表示するときの OLE コントロールのサイズを設定します。
void SetInitialSize(
int cx,
int cy);
パラメーター
cx
OLE コントロールの初期幅 (ピクセル単位)。
cy
OLE コントロールの初期高さ (ピクセル単位)。
解説
コンストラクターでこの関数を呼び出して、コントロールの初期サイズを設定します。 初期サイズは、デバイス単位またはピクセル単位で測定されます。 この呼び出しは、コントロールのコンストラクターで行うことをお勧めします。
COleControl::SetModifiedFlag
コントロールの変更された状態を変更します。
void SetModifiedFlag(BOOL bModified = TRUE);
パラメーター
bModified
コントロールの変更されたフラグの新しい値。 TRUE は、コントロールの状態が変更されたことを示します。FALSE は、コントロールの状態が保存されたばかりであることを示します。
解説
コントロールの永続的な状態に影響する変更が発生するたびに、この関数を呼び出します。 たとえば、永続的なプロパティの値が変更された場合は、 bModified TRUE でこの関数を呼び出します。
COleControl::SetNotPermitted
編集要求が失敗したことを示します。
void SetNotPermitted();
解説
BoundPropertyRequestEdit
が失敗した場合は、この関数を呼び出します。 この関数は、set 操作が許可されなかったことを示すために COleDispScodeException
型の例外をスローします。
COleControl::SetNotSupported
ユーザーによるコントロールのプロパティ値の変更を禁止します。
void SetNotSupported();
解説
コントロールのユーザーによるプロパティ値の変更がサポートされていないプロパティの Set 関数の代わりに、この関数を呼び出します。 1 つの例として、読み取り専用のプロパティがあります。
COleControl::SetRectInContainer
コントロールの四角形の座標を、デバイス単位で表されたコンテナーに対して相対的に設定します。
BOOL SetRectInContainer(LPCRECT lpRect);
パラメーター
lpRect
コンテナーに対するコントロールの新しい座標を含む四角形へのポインター。
戻り値
呼び出しが成功した場合は 0 以外。それ以外の場合は 0。
解説
コントロールが開いている場合は、サイズが変更されます。それ以外の場合は、コンテナーの OnPosRectChanged
関数が呼び出されます。
COleControl::SetText
コントロールのストック Caption プロパティまたは Text プロパティの値を設定します。
void SetText(LPCTSTR pszText);
パラメーター
pszText
文字列へのポインター。
解説
ストック Caption プロパティと Text プロパティはどちらも同じ値にマップされることに注意してください。 つまり、いずれかのプロパティに加えられた変更によって、両方のプロパティが自動的に変更されます。 一般に、コントロールはストック Caption プロパティまたは Text プロパティをサポートする必要がありますが、両方はサポートしません。
COleControl::ThrowError
コントロールでエラーが発生した場合に通知します。
void ThrowError(
SCODE sc,
UINT nDescriptionID,
UINT nHelpID = -1);
void ThrowError(
SCODE sc,
LPCTSTR pszDescription = NULL,
UINT nHelpID = 0);
パラメーター
sc
報告される状態コード値。 使用可能なコードの完全な一覧については、「 ActiveX Controls: Advanced Topics」を参照してください。
nDescriptionID
報告される例外の文字列リソース ID。
nHelpID
報告されるトピックのヘルプ ID。
pszDescription
報告される例外の説明を含む文字列。
解説
この関数は、OLE プロパティの Get または Set 関数、または OLE オートメーション メソッドの実装内からのみ呼び出す必要があります。 他の時点で発生したエラーを通知する必要がある場合は、在庫エラー イベントを発生させる必要があります。
COleControl::TransformCoords
HIMETRIC 単位とコンテナーのネイティブ単位の間で座標値を変換します。
void TransformCoords(
POINTL* lpptlHimetric,
POINTF* lpptfContainer,
DWORD flags);
パラメーター
lpptlHimetric
HIMETRIC 単位の座標を含む POINTL
構造体へのポインター。
lpptfContainer
コンテナーの単位サイズの座標を含む POINTF
構造体へのポインター。
flags
次の値の組み合わせ。
XFORMCOORDS_POSITIONコンテナー内の位置。
XFORMCOORDS_SIZEコンテナー内のサイズ。
XFORMCOORDS_HIMETRICTOCONTAINER HIMETRIC 単位をコンテナーの単位に変換します。
XFORMCOORDS_CONTAINERTOHIMETRIC コンテナーの単位を HIMETRIC 単位に変換します。
解説
最初の 2 つのフラグ (XFORMCOORDS_POSITIONとXFORMCOORDS_SIZE) は、座標を位置またはサイズとして扱う必要があるかどうかを示します。 残りの 2 つのフラグは、変換の方向を示します。
COleControl::TranslateColor
色の値を OLE_COLOR データ型から COLORREF データ型に変換します。
COLORREF TranslateColor(
OLE_COLOR clrColor,
HPALETTE hpal = NULL);
パラメーター
clrColor
OLE_COLORデータ型。 詳細については、Windows OleTranslateColor 関数を参照してください。
hpal
オプションのパレットへのハンドル。には NULL を指定できます。
戻り値
デバイスが表すことができる clrColor 値に最も近い純色を定義する RGB (赤、緑、青) の 32 ビット カラー値。
解説
この関数は、ストックの ForeColor プロパティと BackColor プロパティを、 CDC メンバー関数で使用される COLORREF 型に変換する場合に便利です。
COleControl::WillAmbientsBeValidDuringLoad
その後永続的な状態から読み込まれるときに、コントロールでアンビエント プロパティの値を既定値として使用するかどうかを決定します。
BOOL WillAmbientsBeValidDuringLoad();
戻り値
0 以外は、アンビエント プロパティが有効であることを示します。それ以外の場合、アンビエント プロパティは無効になります。
解説
一部のコンテナーでは、 COleControl::DoPropExchange
のオーバーライドの最初の呼び出し中に、コントロールがそのアンビエント プロパティにアクセスできない場合があります。 これは、コンテナーが IPersistStreamInit::Load または IPersistStorage::Load IOleObject::SetClientSite を呼び出す前に呼び出す場合です (つまり、OLEMISC_SETCLIENTSITEFIRST状態ビットが優先されない場合)。
COleControl::WindowProc
COleControl
オブジェクトの Windows プロシージャを提供します。
virtual LRESULT WindowProc(
UINT message,
WPARAM wParam,
LPARAM lParam);
パラメーター
message
処理する Windows メッセージを指定します。
wParam
メッセージの処理に使用される追加情報を提供します。 パラメーター値はメッセージによって異なります。
lParam
メッセージの処理に使用される追加情報を提供します。 パラメーター値はメッセージによって異なります。
戻り値
ディスパッチされたメッセージの戻り値。
解説
コントロールのメッセージ マップを介して特定のメッセージをディスパッチするには、この関数を呼び出します。
関連項目
MFC サンプル CIRC3
MFC サンプル TESTHELP
COlePropertyPage クラス
CWnd クラス
階層図
CFontHolder クラス
CPictureHolder クラス