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 を参照してください。