163 lines
3.8 KiB
C++
163 lines
3.8 KiB
C++
// TabViewBar.cpp : implementation file
|
|
//
|
|
// Docktest demo of Dockable Views functionality
|
|
|
|
#include "stdafx.h"
|
|
#include "docktest.h"
|
|
#include "TabViewBar.h"
|
|
|
|
#ifdef _DEBUG
|
|
#undef THIS_FILE
|
|
static char BASED_CODE THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CTabViewBar
|
|
//
|
|
|
|
IMPLEMENT_DYNAMIC(CTabViewBar, COXSizeControlBar);
|
|
|
|
CTabViewBar::CTabViewBar()
|
|
: COXSizeControlBar( SZBARF_STDMOUSECLICKS | SZBARF_ALLOW_MDI_FLOAT)
|
|
{
|
|
}
|
|
|
|
CTabViewBar::~CTabViewBar()
|
|
{
|
|
}
|
|
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CTabViewBar, COXSizeControlBar)
|
|
//{{AFX_MSG_MAP(CTabViewBar)
|
|
ON_WM_CREATE()
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CTabViewBar message handlers
|
|
|
|
|
|
//-------------------------------------------------------------------
|
|
void CTabViewBar::OnSizedOrDocked(int cx, int cy, BOOL bFloating, int flags)
|
|
// respond to this event as we need to override it
|
|
//-------------------------------------------------------------------
|
|
{
|
|
UNREFERENCED_PARAMETER(bFloating);
|
|
UNREFERENCED_PARAMETER(flags);
|
|
UNREFERENCED_PARAMETER(cx);
|
|
UNREFERENCED_PARAMETER(cy);
|
|
|
|
CRect rect;
|
|
GetClientRect(rect);
|
|
|
|
// rect.DeflateRect(2,2);
|
|
|
|
m_TabViewContainer.MoveWindow(&rect);
|
|
}
|
|
|
|
|
|
//-------------------------------------------------------------------
|
|
int CTabViewBar::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
|
//-------------------------------------------------------------------
|
|
{
|
|
if (COXSizeControlBar::OnCreate(lpCreateStruct) == -1)
|
|
return -1;
|
|
|
|
CRect rect;
|
|
GetClientRect(&rect);
|
|
|
|
if(!m_TabViewContainer.Create(this,rect))
|
|
return -1;
|
|
|
|
// edit control
|
|
if(!edit.Create(WS_CHILD|ES_MULTILINE|ES_AUTOHSCROLL|
|
|
ES_AUTOVSCROLL|WS_HSCROLL|WS_VSCROLL,CRect(0,0,0,0),
|
|
&m_TabViewContainer,1))
|
|
return -1;
|
|
m_TabViewContainer.AddPage(&edit,_T("Edit"));
|
|
|
|
// list box
|
|
if(!listBox.Create(WS_CHILD|WS_HSCROLL|WS_VSCROLL,
|
|
CRect(0,0,0,0),&m_TabViewContainer,2))
|
|
return -1;
|
|
|
|
int nIndex=0;
|
|
for(nIndex=0; nIndex<20; nIndex++)
|
|
{
|
|
CString string;
|
|
string.Format(_T("List box test string number %d"),nIndex);
|
|
listBox.AddString(string);
|
|
}
|
|
m_TabViewContainer.AddPage(&listBox,_T("ListBox"));
|
|
|
|
// list control
|
|
if(!listCtrl.Create(WS_CHILD|LVS_REPORT,
|
|
CRect(0,0,0,0),&m_TabViewContainer,3))
|
|
return -1;
|
|
if((listCtrl.GetStyle()&LVS_TYPEMASK)==LVS_REPORT)
|
|
{
|
|
LV_COLUMN lvc;
|
|
lvc.mask=LVCF_WIDTH|LVCF_TEXT|LVCF_SUBITEM|LVCF_FMT;
|
|
lvc.fmt=LVCFMT_LEFT;
|
|
lvc.iSubItem=0;
|
|
lvc.cx=200;
|
|
lvc.pszText=_T("Column1");
|
|
listCtrl.InsertColumn(0,&lvc);
|
|
}
|
|
for(nIndex=0; nIndex<20; nIndex++)
|
|
{
|
|
CString string;
|
|
string.Format(_T("List control test string number %d"),nIndex);
|
|
VERIFY(listCtrl.InsertItem(nIndex,string)!=-1);
|
|
}
|
|
m_TabViewContainer.AddPage(&listCtrl,_T("List"));
|
|
|
|
// tree control
|
|
if(!treeCtrl.Create(WS_CHILD|TVS_HASLINES|TVS_LINESATROOT|TVS_HASBUTTONS,
|
|
CRect(0,0,0,0),&m_TabViewContainer,4))
|
|
return -1;
|
|
HTREEITEM htiRoot=treeCtrl.InsertItem(_T("RootItem"));
|
|
for(nIndex=0; nIndex<20; nIndex++)
|
|
{
|
|
CString string;
|
|
string.Format(_T("Tree control test string number %d"),nIndex);
|
|
VERIFY(treeCtrl.InsertItem(string,htiRoot)!=NULL);
|
|
}
|
|
m_TabViewContainer.AddPage(&treeCtrl,_T("Tree"));
|
|
|
|
// rich edit control
|
|
|
|
m_TabViewContainer.SetActivePageIndex(0);
|
|
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
BOOL CTabViewBar::PreCreateWindow(CREATESTRUCT& cs)
|
|
{
|
|
return COXSizeControlBar::PreCreateWindow(cs);
|
|
}
|
|
|
|
|
|
BOOL CTabViewBar::Create(CWnd * pParentWnd,
|
|
const CString& sTitle/*=_T("TabViewBar")*/,
|
|
const UINT nID/*=ID_TABVIEWBAR*/)
|
|
{
|
|
// register a window class for the control bar
|
|
static CString strWndClass;
|
|
if (strWndClass.IsEmpty())
|
|
{
|
|
strWndClass = AfxRegisterWndClass(CS_DBLCLKS);
|
|
}
|
|
|
|
return COXSizeControlBar::Create(strWndClass, sTitle,
|
|
WS_VISIBLE | WS_CHILD | CBRS_BOTTOM | WS_CLIPCHILDREN,
|
|
CFrameWnd::rectDefault, pParentWnd, nID);
|
|
}
|
|
|
|
|
|
|