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
は、 CView
埋め込みオブジェクトを含む -derived CMFCTabCtrl
クラスです。 CTabView
は、オブジェクトをサポートするために必要なすべてのメッセージを CMFCTabCtrl
処理します。 クラスCTabView
を派生させてアプリケーションにプラグインし、メソッドを使用して -derived クラスをAddView
追加CView
するだけです。 タブ コントロールには、これらのビューがタブとして表示されます。
たとえば、スプレッドシート、グラフ、編集可能なフォームなど、さまざまな方法で表すことができるドキュメントがあるとします。 必要に応じてデータを描画する個々のビューを CTabView
作成し、それらを -derived オブジェクトに挿入し、追加のコーディングなしでタブ付けすることができます。
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()
};
必要条件
ヘッダー: 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
-derived クラスでこのメソッドをオーバーライドします。
CTabView::RemoveView
タブ コントロールからビューを削除します。
BOOL RemoveView(int iTabNum);
パラメーター
iTabNum
[in]削除するビューのインデックス。
戻り値
このメソッドが成功した場合の削除されたビューのインデックス。 それ以外の場合は -1。
解説
CTabView::SetActiveView
ビューをアクティブにします。
BOOL SetActiveView(int iTabNum);
パラメーター
iTabNum
[in]タブ ビューの 0 から始まるインデックス。
戻り値
指定したビューがアクティブになっている場合は TRUE、ビューのインデックスが無効な場合は FAL Standard Edition。
解説
詳細については、「CMFCTabCtrl::SetActiveTab」を参照 してください。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示