CTabView Class
The CTabView
class simplifies the use of the tab control class ( CMFCTabCtrl) in applications that use MFC's document/view architecture.
Syntax
class CTabbedView : public CView
Members
Public Methods
Name | Description |
---|---|
CTabView::AddView | Adds a new view to the tab control. |
CTabView::FindTab | Returns the index of the specified view in the tab control. |
CTabView::GetActiveView | Returns a pointer to the currently active view |
CTabView::GetTabControl | Returns a reference to the tab control associated with the view. |
CTabView::RemoveView | Removes the view from the tab control. |
CTabView::SetActiveView | Makes a view active. |
Protected Methods
Name | Description |
---|---|
CTabView::IsScrollBar | Called by the framework when creating a tab view to determine whether the tab view has a shared horizontal scroll bar. |
CTabView::OnActivateView | Called by the framework when the tab view is made active or inactive. |
Remarks
This class makes it easy to put a tabbed view into a document/view application. CTabView
is a CView
-derived class that contains an embedded CMFCTabCtrl
object. CTabView
handles all messages required to support the CMFCTabCtrl
object. Simply derive a class from CTabView
and plug it into your application, then add CView
-derived classes by using the AddView
method. The tab control will display those views as tabs.
For example, you might have a document that can be represented in different ways: as a spreadsheet, a chart, an editable form, and so on. You can create individual views drawing the data as needed, insert them into your CTabView
-derived object and have them tabbed without any additional coding.
TabbedView Sample: MFC Tabbed View Application illustrates usage of CTabView
.
Example
The following example shows how CTabView
is used in the TabbedView sample.
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()
};
Requirements
Header: afxTabView.h
CTabView::AddView
Adds a view to the tab control.
int AddView(
CRuntimeClass* pViewClass,
const CString& strViewLabel,
int iIndex=-1,
CCreateContext* pContext=NULL);
Parameters
pViewClass
[in] A pointer to a runtime class of the inserted view.
strViewLabel
[in] Specifies the tab's text.
iIndex
[in] Specifies the zero-based position at which to insert the view. If the position is -1 the new tab is inserted at the end.
pContext
[in] A pointer to the CCreateContext
of the view.
Return Value
A view index if this method succeeds. Otherwise, -1.
Remarks
Call this function to add a view to the tab control that is embedded in a frame.
CTabView::FindTab
Returns the index of the specified view in the tab control.
int FindTab(HWND hWndView) const;
Parameters
hWndView
[in] The handle of the view.
Return Value
The index of the view if it is found; otherwise, -1.
Remarks
Call this function to retrieve the index of a view that has a specified handle.
CTabView::GetActiveView
Returns a pointer to the currently active view.
CView* GetActiveView() const;
Return Value
A valid pointer to the active view, or NULL if there is no active view.
Remarks
CTabView::GetTabControl
Returns a reference to the tab control associated with the view.
DECLARE_DYNCREATE CMFCTabCtrl& GetTabControl();
Return Value
A reference to the tab control associated with the view.
CTabView::IsScrollBar
Called by the framework when creating a tab view to determine whether the tab view has a shared horizontal scroll bar.
virtual BOOL IsScrollBar() const;
Return Value
TRUE if the tab view should be created together with a shared scroll bar. Otherwise, FALSE.
Remarks
The framework calls this method when a CTabView object is being created.
Override the IsScrollBar method in a CTabView-derived class and return TRUE if you want to create a view that has a shared horizontal scroll bar.
CTabView::OnActivateView
Called by the framework when the tab view is made active or inactive.
virtual void OnActivateView(CView* view);
Parameters
view
[in] A pointer to the view.
Remarks
The default implementation does nothing. Override this method in a CTabView
-derived class to process this notification.
CTabView::RemoveView
Removes the view from the tab control.
BOOL RemoveView(int iTabNum);
Parameters
iTabNum
[in] The index of the view to remove.
Return Value
The index of the removed view if this method succeeds. Otherwise -1.
Remarks
CTabView::SetActiveView
Makes a view active.
BOOL SetActiveView(int iTabNum);
Parameters
iTabNum
[in] The zero-based index of the tab view.
Return Value
TRUE if the specified view was made active, FALSE if the view's index is invalid.
Remarks
For more information see CMFCTabCtrl::SetActiveTab.