⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cjtabview.h

📁 类似vc的集成开发环境
💻 H
字号:
////////////////////////////////////////////////////////////////
// Copyright 1999 Mike Manzo
// Class: CCJTabView
//

#ifndef __CJTABVIEW_H__
#define __CJTABVIEW_H__

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// CJTabView.h : header file
//

typedef struct tagCTV_ITEM
{
	CWnd *pWnd;
	char szLabel[32];
} CTV_ITEM;

#define TABVIEW_BORDER 3

// template list used to contain tab information
typedef CList <CTV_ITEM*, CTV_ITEM *> CListViews;

// CCJTabView is a CCtrlView derived class which can be used to
// create a view that contains a tab control
class _CJX_EXT_CLASS CCJTabView : public CCtrlView
{
	DECLARE_DYNCREATE(CCJTabView)

protected:

	// Default constructor
	//
	CCJTabView();

	// Virtual destructor
	//
	virtual ~CCJTabView();

protected:
	
	CView*			m_pActiveView;	// pointer to the active view
	int				m_nActiveTab;	// index of the active tab
	CTabCtrl*		m_pTabCtrl;		// pointer to the tab control
	CToolTipCtrl*	m_pToolTip;		// pointer to the tooltip control
	CFont			m_TabFont;		// font used by tab control
	CListViews		m_views;		// template list containing tab information

public:

	// this member function is called to add a view to the tab control
	//
	BOOL AddView(
		// tab text
		LPCTSTR lpszLabel,
		// CView object associated with tab
		CRuntimeClass *pViewClass,
		// CDocument associated with view
		CDocument* pDoc = NULL,
		// create context for view
		CCreateContext *pContext = NULL);

	// this member function will modify the style for the
	// tab control associated with this control.
	//
	BOOL ModifyTabStyle(DWORD dwRemove, DWORD dwAdd, UINT nFlags=0);

	// this member function will set a view active
	// based on a CView object
	//
	void SetActiveView(CRuntimeClass *pViewClass);

	// this member function will set a view active
	// based on index
	//
	void SetActiveView(int nNewTab);

	// this member function will remove a view based on its index
	//
	void RemoveView(int nView);

	// this member function returns a pointer to a view
	// based on a CView object
	//
	CView* GetView(CRuntimeClass *pViewClass);

	// this member function returns a pointer to a view
	// based on its index
	//
	CView* GetView(int nView);

	// this member function returns a pointer to the
	// active view in the tab control
	//
	CView* GetActiveView();

	// this member function initializes the image list
	// for the tab control
	//
	CImageList* SetTabImageList(CImageList *pImageList);

	// this member function returns a pointer to the
	// tab control associated with this control
	//
	CTabCtrl* GetTabCtrl();

	// this member function is called by the view, and
	// can be overloaded in derived classes to return the rect
	// for the child window associated with the control bar.
	//
	virtual void GetChildRect(
		// reference to a CRect object which contains the size of
		// the child window associated with the control bar.
		CRect &rect);

private:

	void CalcViewRect(CRect* pRect);

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CCJTabView)
	public:
	virtual void OnInitialUpdate();
	//}}AFX_VIRTUAL

	// Generated message map functions
protected:
	//{{AFX_MSG(CCJTabView)
	afx_msg void OnWindowPosChanged(WINDOWPOS FAR* lpwndpos);
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnSelchange(NMHDR* pNMHDR, LRESULT* pResult);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////
//	Inline Functions
/////////////////////////////////////////////////////////////////////////////

_CJXLIB_INLINE CTabCtrl* CCJTabView::GetTabCtrl()
	{ return m_pTabCtrl; }

_CJXLIB_INLINE CView* CCJTabView::GetActiveView()
	{ return m_pActiveView; }

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // __CJTABVIEW_H__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -