CTabView クラス

CTabView クラスは、MFC のドキュメント/ビュー アーキテクチャを使用するアプリケーションでのタブ コントロール クラス (CMFCTabCtrl) の使用を簡略化します。

構文

class CTabbedView : public CView

メンバー

パブリック メソッド

名前 説明
CTabView::AddView タブ コントロールに新しいビューを追加します。
CTabView::FindTab タブ コントロール内の指定したビューのインデックスを返します。
CTabView::GetActiveView 現在アクティブなビューへのポインターを返します。
CTabView::GetTabControl ビューに関連付けられているタブ コントロールへの参照を返します。
CTabView::RemoveView タブ コントロールからビューを削除します。
CTabView::SetActiveView ビューをアクティブにします。

保護メソッド

名前 説明
CTabView::IsScrollBar タブ ビューの作成時にフレームワークによって呼び出され、タブ ビューに共有の水平スクロール バーがあるかどうかを判断します。
CTabView::OnActivateView タブ ビューがアクティブまたは非アクティブになったときにフレームワークによって呼び出されます。

解説

このクラスを使用すると、タブ付きビューをドキュメント/ビュー アプリケーションに簡単に配置できます。 CTabViewは、埋め込みCMFCTabCtrl オブジェクトを含むCView派生クラスです。 CTabView は、 CMFCTabCtrl オブジェクトをサポートするために必要なすべてのメッセージを処理します。 CTabViewからクラスを派生させてアプリケーションにプラグインし、AddView メソッドを使用してCView派生クラスを追加するだけです。 タブ コントロールには、これらのビューがタブとして表示されます。

たとえば、スプレッドシート、グラフ、編集可能なフォームなど、さまざまな方法で表すことができるドキュメントがあるとします。 必要に応じてデータを描画する個々のビューを作成し、 CTabView派生オブジェクトに挿入し、追加のコーディングなしでタブ付けすることができます。

TabbedView サンプル: MFC タブビュー アプリケーションCTabViewの使用方法を示します。

次の例は、TabbedView サンプルで CTabView がどのように使用されるかを示しています。

class CTabbedViewView : public CTabView
{
protected: // create from serialization only
   CTabbedViewView();
   DECLARE_DYNCREATE(CTabbedViewView)

   // Attributes
public:
   CTabbedViewDoc *GetDocument();

   // Operations
public:
   // Overrides
public:
   virtual void OnDraw(CDC *pDC); // overridden to draw this view
   virtual BOOL PreCreateWindow(CREATESTRUCT &cs);

protected:
   virtual BOOL OnPreparePrinting(CPrintInfo *pInfo);
   virtual void OnBeginPrinting(CDC *pDC, CPrintInfo *pInfo);
   virtual void OnEndPrinting(CDC *pDC, CPrintInfo *pInfo);

   BOOL IsScrollBar() const
   {
      return TRUE;
   }

   // Implementation
public:
   virtual ~CTabbedViewView();
#ifdef _DEBUG
   virtual void AssertValid() const;
   virtual void Dump(CDumpContext &dc) const;
#endif

protected:
   afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
   afx_msg BOOL OnEraseBkgnd(CDC *pDC);
   afx_msg void OnContextMenu(CWnd *, CPoint point);
   afx_msg void OnFilePrintPreview();

   DECLARE_MESSAGE_MAP()
};

要件

Header: afxTabView.h

CTabView::AddView

タブ コントロールにビューを追加します。

int AddView(
    CRuntimeClass* pViewClass,
    const CString& strViewLabel,
    int iIndex=-1,
    CCreateContext* pContext=NULL);

パラメーター

pViewClass
[in]挿入されたビューのランタイム クラスへのポインター。

strViewLabel
[in]タブのテキストを指定します。

iIndex
[in]ビューを挿入する位置を 0 から始める位置を指定します。 位置が -1 の場合、新しいタブが末尾に挿入されます。

pContext
[in]ビューの CCreateContext へのポインター。

戻り値

このメソッドが成功した場合のビュー インデックス。 それ以外の場合は、-1。

解説

フレームに埋め込まれているタブ コントロールにビューを追加するには、この関数を呼び出します。

CTabView::FindTab

タブ コントロール内の指定したビューのインデックスを返します。

int FindTab(HWND hWndView) const;

パラメーター

hWndView
[in]ビューのハンドル。

戻り値

ビューが見つかった場合のインデックス。それ以外の場合は -1。

解説

指定したハンドルを持つビューのインデックスを取得するには、この関数を呼び出します。

CTabView::GetActiveView

現在アクティブなビューへのポインターを返します。

CView* GetActiveView() const;

戻り値

アクティブ ビューへの有効なポインター。アクティブなビューがない場合は NULL。

解説

CTabView::GetTabControl

ビューに関連付けられているタブ コントロールへの参照を返します。

DECLARE_DYNCREATE CMFCTabCtrl& GetTabControl();

戻り値

ビューに関連付けられているタブ コントロールへの参照。

CTabView::IsScrollBar

タブ ビューの作成時にフレームワークによって呼び出され、タブ ビューに共有の水平スクロール バーがあるかどうかを判断します。

virtual BOOL IsScrollBar() const;

戻り値

共有スクロール バーと共にタブ ビューを作成する必要がある場合は TRUE。 それ以外の場合は FALSE。

解説

フレームワークは、 CTabView オブジェクトの作成時にこのメソッドを呼び出します。

CTabView 派生クラスの IsScrollBar メソッドをオーバーライドし、水平スクロール バーを共有するビューを作成する場合は TRUE を返します。

CTabView::OnActivateView

タブ ビューがアクティブまたは非アクティブになったときにフレームワークによって呼び出されます。

virtual void OnActivateView(CView* view);

パラメーター

view
[in]ビューへのポインター。

解説

既定の実装では、何も行われません。 この通知を処理するには、 CTabView派生クラスでこのメソッドをオーバーライドします。

CTabView::RemoveView

タブ コントロールからビューを削除します。

BOOL RemoveView(int iTabNum);

パラメーター

iTabNum
[in]削除するビューのインデックス。

戻り値

このメソッドが成功した場合の削除されたビューのインデックス。 それ以外の場合は -1。

解説

CTabView::SetActiveView

ビューをアクティブにします。

BOOL SetActiveView(int iTabNum);

パラメーター

iTabNum
[in]タブ ビューの 0 から始まるインデックス。

戻り値

指定したビューがアクティブになっている場合は TRUE、ビューのインデックスが無効な場合は FALSE。

解説

詳細については、 CMFCTabCtrl::SetActiveTab を参照してください。

関連項目

階層図
クラス
CMFCTabCtrl
CView クラス