CRectTracker クラス

項目をさまざまな方法で表示、移動、およびサイズ変更できるようにします。

構文

class CRectTracker

メンバー

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

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

パブリック メソッド

名前 説明
CRectTracker::AdjustRect 四角形のサイズが変更されたときに呼び出されます。
CRectTracker::D raw 四角形をレンダリングします。
CRectTracker::D rawTrackerRect オブジェクトの CRectTracker 境界線を描画するときに呼び出されます。
CRectTracker::GetHandleMask アイテムのサイズ変更ハンドルのマスクを CRectTracker 取得するために呼び出されます。
CRectTracker::GetTrueRect サイズ変更ハンドルなど、四角形の幅と高さを返します。
CRectTracker::HitTest オブジェクトに関連するカーソルの現在位置を CRectTracker 返します。
CRectTracker::NormalizeHit ヒット テスト コードを正規化します。
CRectTracker::OnChangedRect 四角形のサイズが変更または移動されたときに呼び出されます。
CRectTracker::SetCursor 四角形上の位置に応じてカーソルを設定します。
CRectTracker::Track ユーザーが四角形を操作できるようにします。
CRectTracker::TrackRubberBand ユーザーが選択範囲を "ゴムバンド" できるようにします。

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

名前 説明
CRectTracker::m_nHandleSize サイズ変更ハンドルのサイズを決定します。
CRectTracker::m_nStyle トラッカーの現在のスタイル。
CRectTracker::m_rect 四角形の現在の位置 (ピクセル単位)。
CRectTracker::m_sizeMin 最小四角形の幅と高さを指定します。

解説

CRectTracker には基底クラスはありません。

CRectTrackerこのクラスは、ユーザーがグラフィカル インターフェイスを使用して OLE 項目を操作できるように設計されていますが、その使用は OLE 対応アプリケーションに限定されません。 このようなユーザー インターフェイスが必要な場所であればどこでも使用できます。

CRectTracker 罫線には、実線または点線を使用できます。 項目には、ハッチングされた境界線を付けたり、ハッチングパターンを重ねてアイテムのさまざまな状態を示したりすることができます。 アイテムの外側または内側の境界線に 8 つのサイズ変更ハンドルを配置できます。 (サイズ変更ハンドルの説明については 、GetHandleMask.)最後に、a CRectTracker を使用すると、サイズ変更中に項目の向きを変更できます。

CRectTracker使用するには、オブジェクトをCRectTracker構築し、初期化する表示状態を指定します。 その後、このインターフェイスを使用して、オブジェクトに関連付けられている OLE 項目の現在の状態に関する視覚的なフィードバックをユーザーに CRectTracker 提供できます。

使用CRectTrackerの詳細については、トラッカーに関する記事を参照してください。

継承階層

CRectTracker

必要条件

ヘッダー: afxext.h

CRectTracker::AdjustRect

サイズ変更ハンドルを使用して追跡四角形のサイズを変更するときにフレームワークによって呼び出されます。

virtual void AdjustRect(
    int nHandle,
    LPRECT lpRect);

パラメーター

nHandle
使用されるハンドルのインデックス。

lpRect
四角形の現在のサイズへのポインター。 (四角形のサイズは、その高さと幅によって指定されます)。

解説

この関数の既定の動作では、反転を許可して呼び出されたときにのみTrackTrackRubberBand四角形の向きを変更できます。

ドラッグ操作中に追跡四角形の調整を制御するには、この関数をオーバーライドします。 1 つの方法は、戻る前に lpRect指定された座標を調整する方法です。

グリッドへのスナップや縦横比の維持など、直接サポートされていない CRectTracker特殊な機能は、この関数をオーバーライドすることで実装できます。

CRectTracker::CRectTracker

オブジェクトを作成して初期化します CRectTracker

CRectTracker();

CRectTracker(
    LPCRECT lpSrcRect,
    UINT nStyle);

パラメーター

lpSrcRect
四角形オブジェクトの座標。

nStyle
オブジェクトのスタイルを CRectTracker 指定します。 次のスタイルがサポートされています。

  • CRectTracker::solidLine 四角形の境界線には実線を使用します。

  • CRectTracker::dottedLine 四角形の境界線には点線を使用します。

  • CRectTracker::hatchedBorder 四角形の境界線にハッチング パターンを使用します。

  • CRectTracker::resizeInside 四角形内にあるハンドルのサイズを変更します。

  • CRectTracker::resizeOutside 四角形の外側にあるハンドルのサイズを変更します。

  • CRectTracker::hatchInside ハッチングパターンは四角形全体を覆います。

解説

既定のコンストラクターCRectTrackerは、lpSrcRect値を使用してオブジェクトを初期化し、他のサイズをシステムの既定値に初期化します。 パラメーターなしでオブジェクトが作成された場合、 m_rect データ メンバーと m_nStyle データ メンバーは初期化されません。

CRectTracker::D raw

四角形の外側の線と内側の領域を描画するには、この関数を呼び出します。

void Draw(CDC* pDC) const;

パラメーター

pDC
描画するデバイス コンテキストへのポインター。

解説

トラッカーのスタイルによって、描画の実行方法が決まります。 使用可能なスタイルの CRectTracker 詳細については、コンストラクターを参照してください。

CRectTracker::D rawTrackerRect

またはTrackRubberBandメンバー関数内Trackでトラッカーの位置が変更されるたびにフレームワークによって呼び出されます。

virtual void DrawTrackerRect(
    LPCRECT lpRect,
    CWnd* pWndClipTo,
    CDC* pDC,
    CWnd* pWnd);

パラメーター

lpRect
描画する RECT 四角形を含むオブジェクトへのポインター。

pWndClipTo
四角形のクリッピングに使用するウィンドウへのポインター。

pDC
描画するデバイス コンテキストへのポインター。

pWnd
図面が表示されるウィンドウへのポインター。

解説

既定の実装では、点線の四角形を描画する CDC::DrawFocusRect呼び出しが行われます。

追跡操作中に異なるフィードバックを提供するには、この関数をオーバーライドします。

CRectTracker::GetHandleMask

フレームワークは、このメンバー関数を呼び出して、四角形のサイズ変更ハンドルのマスクを取得します。

virtual UINT GetHandleMask() const;

戻り値

項目の CRectTracker サイズ変更ハンドルのマスク。

解説

サイズ変更ハンドルは四角形の側面と角に表示され、ユーザーは四角形の形状とサイズを制御できます。

四角形には、0 から 7 の番号が付いた 8 つのサイズ変更ハンドルがあります。 各サイズ変更ハンドルは、マスク内のビットによって表されます。そのビットの値は 2^ n で、n はサイズ変更ハンドル番号です。 ビット 0 から 3 は、左上から時計回りに移動する角のサイズ変更ハンドルに対応します。 ビット 4 から 7 は、時計回りの上部から始まるサイド サイズ変更ハンドルに対応します。 次の図は、四角形のサイズ変更ハンドルとそれに対応するサイズ変更ハンドルの数値と値を示しています。

Resize handle numbers.

既定の GetHandleMask 実装では、サイズ変更ハンドルが表示されるようにビットのマスクが返されます。 1 ビットがオンの場合、対応するサイズ変更ハンドルが描画されます。

指定されたサイズ変更ハンドルを非表示または表示するには、このメンバー関数をオーバーライドします。

CRectTracker::GetTrueRect

四角形の座標を取得するには、この関数を呼び出します。

void GetTrueRect(LPRECT lpTrueRect) const;

パラメーター

lpTrueRect
オブジェクトの RECT デバイス座標 CRectTracker を格納する構造体へのポインター。

解説

四角形の寸法には、外側の境界線にあるサイズ変更ハンドルの高さと幅が含まれます。 戻ると、 lpTrueRect は常にデバイス座標で正規化された四角形です。

CRectTracker::HitTest

この関数を呼び出して、ユーザーがサイズ変更ハンドルをつかんだかどうかを調べます。

int HitTest(CPoint point) const;

パラメーター

point
テストするポイント (デバイス座標)。

戻り値

返される値は列挙型 CRectTracker::TrackerHit に基づいており、次のいずれかの値を持つことができます。

  • CRectTracker::hitNothing -1

  • CRectTracker::hitTopLeft 0

  • CRectTracker::hitTopRight 1

  • CRectTracker::hitBottomRight 2

  • CRectTracker::hitBottomLeft 3

  • CRectTracker::hitTop 4

  • CRectTracker::hitRight 5

  • CRectTracker::hitBottom 6

  • CRectTracker::hitLeft 7

  • CRectTracker::hitMiddle 8

CRectTracker::m_nHandleSize

サイズ変更ハンドルのサイズ ( CRectTracker ピクセル単位)。

int m_nHandleSize;

解説

既定のシステム値で初期化されます。

CRectTracker::m_rect

クライアント座標 (ピクセル) での四角形の現在の位置。

CRect m_rect;

CRectTracker::m_sizeMin

四角形の最小サイズ。

CSize m_sizeMin;

解説

既定値と cy、両方とも、cx境界線の幅の既定のシステム値から計算されます。 このデータ メンバーは、メンバー関数でのみ AdjustRect 使用されます。

CRectTracker::m_nStyle

四角形の現在のスタイル。

UINT m_nStyle;

解説

使用可能なスタイルの一覧については、「 CRectTracker::CRectTracker 」を参照してください。

CRectTracker::NormalizeHit

この関数を呼び出して、反転する可能性があるハンドルを変換します。

int NormalizeHit(int nHandle) const;

パラメーター

nHandle
ユーザーが選択したハンドル。

戻り値

正規化されたハンドルのインデックス。

解説

CRectTracker::TrackRubberBand反転を許可して呼び出した場合CRectTracker::Track、四角形を x 軸、y 軸、またはその両方で反転できます。 この場合、 HitTest 四角形に対しても反転されたハンドルが返されます。 フィードバックは、変更される四角形データ構造の部分ではなく、四角形の画面位置に依存するため、これはカーソルフィードバックを描画するには適していません。

CRectTracker::OnChangedRect

への呼び出し中にトラッカーの四角形が変更されるたびにフレームワークによって呼び出 Trackされます。

virtual void OnChangedRect(const CRect& rectOld);

パラメーター

rectOld
オブジェクトの古いデバイス座標を CRectTracker 格納します。

解説

この関数が呼び出された時点で、描画 DrawTrackerRect されたすべてのフィードバックが削除されています。 この関数の既定の実装は、何も行いません。

四角形のサイズが変更された後にアクションを実行する場合は、この関数をオーバーライドします。

CRectTracker::SetCursor

この関数を呼び出して、オブジェクトの領域を超えている間にカーソルの図形を CRectTracker 変更します。

BOOL SetCursor(
    CWnd* pWnd,
    UINT nHitTest) const;

パラメーター

pWnd
現在カーソルが含まれているウィンドウをポイントします。

nHitTest
WM_Standard Edition TCURSOR メッセージからの前のヒット テストの結果。

戻り値

前のヒットがトラッカーの四角形を超えた場合は 0 以外。それ以外の場合は 0。

解説

WM_Standard Edition TCURSOR メッセージ (通常OnSetCursor) を処理するウィンドウの関数内からこの関数を呼び出します。

CRectTracker::Track

四角形のサイズを変更するためのユーザー インターフェイスを表示するには、この関数を呼び出します。

BOOL Track(
    CWnd* pWnd,
    CPoint point,
    BOOL bAllowInvert = FALSE,
    CWnd* pWndClipTo = NULL);

パラメーター

pWnd
四角形を含むウィンドウ オブジェクト。

point
クライアント領域に対する現在のマウス位置のデバイス座標。

bAllowInvert
TRUE の場合、四角形は x 軸または y 軸に沿って反転できます。それ以外の場合は FAL Standard Edition。

pWndClipTo
描画操作がクリップされるウィンドウ。 NULL の場合、 クリッピング四角形として pWnd が使用されます。

戻り値

ESC キーを押すと、追跡プロセスが停止し、トラッカーに格納されている四角形は変更されず、0 が返されます。 変更がコミットされると、マウスを動かしてマウスの左ボタンを離すと、新しい位置やサイズがトラッカーの四角形に記録され、0 以外の値が返されます。

解説

これは通常、メッセージを処理 WM_LBUTTONDOWN するアプリケーションの関数内から呼び出されます (通常 OnLButtonDown)。

この関数は、ユーザーがマウスの左ボタンを離すか、Esc キーを押すか、マウスの右ボタンを押すまでマウスをキャプチャします。 ユーザーがマウス カーソルを移動すると、フィードバックは呼び出 DrawTrackerRect しと OnChangedRect.

bAllowInvert が TRUE の場合、追跡四角形は x 軸または y 軸で反転できます。

CRectTracker::TrackRubberBand

この関数を呼び出して、ゴムバンドの選択を行います。

BOOL TrackRubberBand(
    CWnd* pWnd,
    CPoint point,
    BOOL bAllowInvert = TRUE);

パラメーター

pWnd
四角形を含むウィンドウ オブジェクト。

point
クライアント領域に対する現在のマウス位置のデバイス座標。

bAllowInvert
TRUE の場合、四角形は x 軸または y 軸に沿って反転できます。それ以外の場合は FAL Standard Edition。

戻り値

マウスが移動し、四角形が空でない場合は 0 以外。それ以外の場合は 0。

解説

通常は、WM_LBUTTONDOWN メッセージを処理するアプリケーションの関数内から呼び出されます (通常 OnLButtonDown)。

この関数は、ユーザーがマウスの左ボタンを離すか、Esc キーを押すか、マウスの右ボタンを押すまでマウスをキャプチャします。 ユーザーがマウス カーソルを移動すると、フィードバックは呼び出 DrawTrackerRect しと OnChangedRect.

トラッキングは、右下ハンドルからラバーバンドタイプを選択して実行されます。 反転が許可されている場合は、上下または右にドラッグすることで、四角形のサイズを調整できます。

関連項目

MFC サンプル トラッカー
MFC サンプル DRAWCLI
階層図
COleResizeBar クラス
CRect クラス