2025-11-27 16:46:48 +09:00

580 lines
18 KiB
C++

// ==========================================================================
// Class Implementation: COXCustomizeTabbedMDIPage
// ==========================================================================
// Version: 9.3
// This software along with its related components, documentation and files ("The Libraries")
// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is
// governed by a software license agreement ("Agreement"). Copies of the Agreement are
// available at The Code Project (www.codeproject.com), as part of the package you downloaded
// to obtain this file, or directly from our office. For a copy of the license governing
// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900.
// //////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "OXCustomizeTabbedMDIPage.h"
#include "OXCustomizeManager.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
const UINT IDC_RADIO_ORIENT_LEFT=2000;
const UINT IDC_RADIO_ORIENT_TOP=2001;
const UINT IDC_RADIO_ORIENT_RIGHT=2002;
const UINT IDC_RADIO_ORIENT_BOTTOM=2003;
const UINT IDC_RADIO_APPEARANCE_TAB_BUTTONS=2010;
const UINT IDC_RADIO_APPEARANCE_PUSH_BUTTONS=2011;
const UINT IDC_RADIO_APPEARANCE_FLAT_BUTTONS=2012;
const UINT IDC_RADIO_POSITIONING_MULTILINE=2020;
const UINT IDC_RADIO_POSITIONING_SINGLELINE=2021;
const UINT IDC_CHECK_DISPLAY_HOTTRACK=2040;
const UINT IDC_CHECK_DISPLAY_FIXEDWIDTH=2041;
const UINT IDC_CHECK_DISPLAY_NORAGGEDRIGHT=2042;
const UINT IDC_CHECK_DISPLAY_SCROLLOPPOSITE=2043;
const UINT IDC_CHECK_DISPLAY_FORCEICONLEFT=2044;
const UINT IDC_CHECK_DISPLAY_FORCELABELLEFT=2045;
#ifndef TCS_FLATBUTTONS
#define TCS_FLATBUTTONS 0x0008
#endif
/////////////////////////////////////////////////////////////////////////////
// COXCustomizeTabbedMDIPage dialog
IMPLEMENT_DYNCREATE(COXCustomizeTabbedMDIPage, COXCustomizePage)
COXCustomizeTabbedMDIPage::COXCustomizeTabbedMDIPage()
{
//{{AFX_DATA_INIT(COXCustomizeTabbedMDIPage)
m_bSupportTabbedMDI = FALSE;
m_dwOffset = 0;
//}}AFX_DATA_INIT
m_pHelpWnd=NULL;
m_dwStyle=0;
m_nDialogID=IDD;
m_sProfileName.Empty();
}
COXCustomizeTabbedMDIPage::~COXCustomizeTabbedMDIPage()
{
}
BOOL COXCustomizeTabbedMDIPage::
InitializeTabbedMDI(DWORD dwTabCtrlStyle/*=DEFAULT_TABCTRLSTYLE*/,
DWORD dwOffset/*=ID_TABOFFSET*/,
LPCTSTR lpszProfileName/*=_T("CustomizeTabbedMDI")*/,
BOOL bSupportTabbedMDI/*=TRUE*/)
{
CWnd* pWnd=AfxGetMainWnd();
ASSERT(pWnd!=NULL && ::IsWindow(pWnd->GetSafeHwnd()));
ASSERT_KINDOF(CMDIFrameWnd,pWnd);
if(!pWnd->IsKindOf(RUNTIME_CLASS(CMDIFrameWnd)))
{
TRACE(_T("COXCustomizeTabbedMDIPage::InitializeTabbedMDI: tabbed MDI is supported only for MDI applications\n"));
return FALSE;
}
if(bSupportTabbedMDI)
{
if(!m_MTIClientWnd.Attach((CMDIFrameWnd*)pWnd,dwTabCtrlStyle))
{
TRACE(_T("COXCustomizeTabbedMDIPage::InitializeTabbedMDI: failed to initialize tabbed MDI support\n"));
return FALSE;
}
m_MTIClientWnd.GetTabCtrl()->SetOffset(dwOffset);
}
if(lpszProfileName!=NULL)
{
m_sProfileName=lpszProfileName;
m_MTIClientWnd.LoadState(lpszProfileName);
}
m_bSupportTabbedMDI=m_MTIClientWnd.IsAttached();
return TRUE;
}
BOOL COXCustomizeTabbedMDIPage::OnCloseManager(BOOL bIsOk)
{
if(bIsOk)
{
if(!ApplyChanges())
{
return FALSE;
}
if(!m_sProfileName.IsEmpty())
{
m_MTIClientWnd.SaveState(m_sProfileName);
}
}
return TRUE;
}
void COXCustomizeTabbedMDIPage::DoDataExchange(CDataExchange* pDX)
{
COXCustomizePage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(COXCustomizeTabbedMDIPage)
DDX_Control(pDX, IDC_OX_TREE_TABCTRL_SETTINGS, m_treeTabCtrlSettings);
DDX_Control(pDX, IDC_OX_SPIN_OFFSET, m_spinOffset);
DDX_Check(pDX, IDC_OX_CHECK_SUPPORT_TABBEDMDI, m_bSupportTabbedMDI);
DDX_Text(pDX, IDC_OX_EDIT_OFFSET, m_dwOffset);
DDV_MinMaxDWord(pDX, m_dwOffset, 0, 1000);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(COXCustomizeTabbedMDIPage, COXCustomizePage)
//{{AFX_MSG_MAP(COXCustomizeTabbedMDIPage)
ON_BN_CLICKED(IDC_OX_CHECK_SUPPORT_TABBEDMDI, OnCheckSupportTabbedmdi)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// COXCustomizeTabbedMDIPage message handlers
BOOL COXCustomizeTabbedMDIPage::Load(const COXCustomizeManager* pCustomizeManager)
{
// Call default implementation. It will load this demo dialog as the first
// page and will create About and CodeSample pages if specified.
if(!COXCustomizePage::Load(pCustomizeManager))
return FALSE;
return TRUE;
}
void COXCustomizeTabbedMDIPage::Unload()
{
// add here code for cleaning up all objects created by demo
//
//
//////////////////////////////////////////////////////////////////////////
COXCustomizePage::Unload();
}
void COXCustomizeTabbedMDIPage::OnInitDialog()
{
// must call default implementation
COXCustomizePage::OnInitDialog();
// add here initialization code for your demo dialog. Treat it as a
// normal CDialog::OnInitDialog function
// spin control
m_spinOffset.SetRange(0,1000);
GetVars();
// layout
//
m_LayoutManager.TieChild(&m_treeTabCtrlSettings,OX_LMS_ANY,OX_LMT_SAME);
m_LayoutManager.TieChild(IDC_OX_STATIC_OFFSET,OX_LMS_BOTTOM,OX_LMT_SAME);
m_LayoutManager.TieChild(IDC_OX_EDIT_OFFSET,OX_LMS_BOTTOM,OX_LMT_SAME);
m_LayoutManager.TieChild(IDC_OX_SPIN_OFFSET,OX_LMS_BOTTOM,OX_LMT_SAME);
//
///////////////////////////////////////
m_bInitialized=TRUE;
UpdateData(FALSE);
OnCheckSupportTabbedmdi();
}
BOOL COXCustomizeTabbedMDIPage::ApplyChanges()
{
if(!UpdateData(TRUE))
return FALSE;
CWnd* pWnd=AfxGetMainWnd();
ASSERT(pWnd!=NULL && ::IsWindow(pWnd->GetSafeHwnd()));
ASSERT_KINDOF(CMDIFrameWnd,pWnd);
if(!pWnd->IsKindOf(RUNTIME_CLASS(CMDIFrameWnd)))
{
TRACE(_T("COXCustomizeTabbedMDIPage::InitializeTabbedMDI: tabbed MDI is supported only for MDI applications\n"));
return FALSE;
}
m_dwStyle=0;
// orientation
switch(m_treeTabCtrlSettings.GetCheckedRadioButton(IDC_RADIO_ORIENT_LEFT,
IDC_RADIO_ORIENT_BOTTOM))
{
case IDC_RADIO_ORIENT_LEFT:
m_dwStyle|=TCS_VERTICAL;
break;
case IDC_RADIO_ORIENT_TOP:
break;
case IDC_RADIO_ORIENT_RIGHT:
m_dwStyle|=TCS_VERTICAL|TCS_BOTTOM;
break;
case IDC_RADIO_ORIENT_BOTTOM:
m_dwStyle|=TCS_BOTTOM;
break;
default:
ASSERT(FALSE);
}
// appearance
switch(m_treeTabCtrlSettings.GetCheckedRadioButton(IDC_RADIO_APPEARANCE_TAB_BUTTONS,
IDC_RADIO_APPEARANCE_FLAT_BUTTONS))
{
case IDC_RADIO_APPEARANCE_TAB_BUTTONS:
break;
case IDC_RADIO_APPEARANCE_PUSH_BUTTONS:
m_dwStyle|=TCS_BUTTONS;
break;
case IDC_RADIO_APPEARANCE_FLAT_BUTTONS:
m_dwStyle|=TCS_BUTTONS|TCS_FLATBUTTONS;
break;
default:
ASSERT(FALSE);
}
// positioning
switch(m_treeTabCtrlSettings.GetCheckedRadioButton(IDC_RADIO_POSITIONING_SINGLELINE,
IDC_RADIO_POSITIONING_MULTILINE))
{
case IDC_RADIO_POSITIONING_SINGLELINE:
break;
case IDC_RADIO_POSITIONING_MULTILINE:
m_dwStyle|=TCS_MULTILINE;
break;
default:
ASSERT(FALSE);
}
// display
if(m_treeTabCtrlSettings.GetCheck(IDC_CHECK_DISPLAY_HOTTRACK)==OTITEM_CHECKED)
m_dwStyle|=TCS_HOTTRACK;
if(m_treeTabCtrlSettings.GetCheck(IDC_CHECK_DISPLAY_FIXEDWIDTH)==OTITEM_CHECKED)
m_dwStyle|=TCS_FIXEDWIDTH;
if(m_treeTabCtrlSettings.GetCheck(IDC_CHECK_DISPLAY_NORAGGEDRIGHT)==OTITEM_UNCHECKED)
m_dwStyle|=TCS_RAGGEDRIGHT;
if(m_treeTabCtrlSettings.GetCheck(IDC_CHECK_DISPLAY_SCROLLOPPOSITE)==OTITEM_CHECKED)
m_dwStyle|=TCS_SCROLLOPPOSITE;
if(m_treeTabCtrlSettings.GetCheck(IDC_CHECK_DISPLAY_FORCEICONLEFT)==OTITEM_CHECKED)
m_dwStyle|=TCS_FORCEICONLEFT;
if(m_treeTabCtrlSettings.GetCheck(IDC_CHECK_DISPLAY_FORCELABELLEFT)==OTITEM_CHECKED)
m_dwStyle|=TCS_FORCELABELLEFT;
//
/////////////////////////////////
if ( m_MTIClientWnd.m_hWnd != NULL )
{
if(m_bSupportTabbedMDI==m_MTIClientWnd.IsAttached() &&
m_dwOffset==m_MTIClientWnd.GetTabCtrl()->GetOffset() &&
m_dwStyle==(m_MTIClientWnd.GetTabCtrl()->GetStyle()&0x0fff))
{
return TRUE;
}
if(m_MTIClientWnd.IsAttached())
{
// check if it has been attached to background painter before
#ifdef OX_CUSTOMIZE_BACKGROUND
BOOL bPaintBackground=FALSE;
COXBackgroundPainterOrganizer* pBackgroundOrganizer=
m_pCustomizeManager->GetBackgroundPainterOrganizer();
ASSERT(pBackgroundOrganizer!=NULL);
COXDIB dib;
PaintType paintType=Tile;
COLORREF clrBk=RGB(0,0,0);
CWnd* pOriginWnd=NULL;
if(pBackgroundOrganizer->IsAttached(&m_MTIClientWnd))
{
COXBackgroundPainter* pBackgroundPainter=
pBackgroundOrganizer->GetPainter(&m_MTIClientWnd);
ASSERT(pBackgroundPainter!=NULL);
COXDIB* pDIB=pBackgroundPainter->GetWallpaperImage();
if(pDIB!=NULL)
dib=*pDIB;
paintType=pBackgroundPainter->GetPaintType();
clrBk=pBackgroundPainter->GetBkColor();
pOriginWnd=pBackgroundPainter->GetOriginWnd();
pBackgroundOrganizer->Detach(&m_MTIClientWnd);
bPaintBackground=TRUE;
}
#endif // OX_CUSTOMIZE_BACKGROUND
VERIFY(m_MTIClientWnd.Detach());
#ifdef OX_CUSTOMIZE_BACKGROUND
if(bPaintBackground)
{
//static CWnd g_MTIClientWnd;
if (m_pHelpWnd)
{
m_pHelpWnd->DestroyWindow();
delete m_pHelpWnd;
}
m_pHelpWnd=new COXHelperWnd;
m_pHelpWnd->Attach(((CMDIFrameWnd*)pWnd)->m_hWndMDIClient);
ASSERT(pBackgroundOrganizer!=NULL);
VERIFY(pBackgroundOrganizer->Attach(m_pHelpWnd,&dib,
paintType,clrBk,pOriginWnd));
}
#endif // OX_CUSTOMIZE_BACKGROUND
}
}
else if(m_bSupportTabbedMDI)
{
// check if there is CWnd object attached to MDIClient
CWnd* pMDIClientWnd=CWnd::FromHandlePermanent(((CMDIFrameWnd*)pWnd)->
m_hWndMDIClient);
if(pMDIClientWnd!=NULL)
{
// check if it has been attached to background painter before
#ifdef OX_CUSTOMIZE_BACKGROUND
BOOL bPaintBackground=FALSE;
COXBackgroundPainterOrganizer* pBackgroundOrganizer=
m_pCustomizeManager->GetBackgroundPainterOrganizer();
ASSERT(pBackgroundOrganizer!=NULL);
COXDIB dib;
PaintType paintType=Tile;
COLORREF clrBk=RGB(0,0,0);
CWnd* pOriginWnd=NULL;
if(pBackgroundOrganizer->IsAttached(pMDIClientWnd))
{
COXBackgroundPainter* pBackgroundPainter=
pBackgroundOrganizer->GetPainter(pMDIClientWnd);
ASSERT(pBackgroundPainter!=NULL);
COXDIB* pDIB=pBackgroundPainter->GetWallpaperImage();
if(pDIB!=NULL)
dib=*pDIB;
paintType=pBackgroundPainter->GetPaintType();
clrBk=pBackgroundPainter->GetBkColor();
pOriginWnd=pBackgroundPainter->GetOriginWnd();
pBackgroundOrganizer->Detach(pMDIClientWnd);
bPaintBackground=TRUE;
}
#endif // OX_CUSTOMIZE_BACKGROUND
pMDIClientWnd->Detach();
VERIFY(m_MTIClientWnd.Attach((CMDIFrameWnd*)pWnd,m_dwStyle));
#ifdef OX_CUSTOMIZE_BACKGROUND
if(bPaintBackground)
{
ASSERT(pBackgroundOrganizer!=NULL);
VERIFY(pBackgroundOrganizer->Attach(&m_MTIClientWnd,&dib,
paintType,clrBk,pOriginWnd));
}
#endif // OX_CUSTOMIZE_BACKGROUND
}
else
{
VERIFY(m_MTIClientWnd.Attach((CMDIFrameWnd*)pWnd,m_dwStyle));
}
m_MTIClientWnd.GetTabCtrl()->SetOffset(m_dwOffset);
}
return TRUE;
}
void COXCustomizeTabbedMDIPage::GetVars()
{
m_bSupportTabbedMDI=m_MTIClientWnd.IsAttached();
m_dwOffset=(m_bSupportTabbedMDI ?
m_MTIClientWnd.GetTabCtrl()->GetOffset() : ID_TABOFFSET);
m_dwStyle=(m_bSupportTabbedMDI ?
m_MTIClientWnd.GetTabCtrl()->GetStyle() : DEFAULT_TABCTRLSTYLE);
// build tree control
//
m_treeTabCtrlSettings.DeleteAllItems();
// root item
int nImageIndex=m_treeTabCtrlSettings.
AddImage(IDB_OX_CUSTOMIZETABBEDMDI_SETTINGS,RGB(192,192,192));
ASSERT(nImageIndex!=-1);
CString sItem;
VERIFY(sItem.LoadString(IDS_OX_CSTMZETABBEDSETTINGS));//"Tab control settings"
HTREEITEM hRootItem=m_treeTabCtrlSettings.
AddControlGroup(sItem,NULL,TRUE,nImageIndex,nImageIndex);
ASSERT(hRootItem!=NULL);
m_treeTabCtrlSettings.SetItemState(hRootItem,TVIS_BOLD,TVIS_BOLD);
// orientation
nImageIndex=m_treeTabCtrlSettings.
AddImage(IDB_OX_CUSTOMIZETABBEDMDI_ORIENTATION,RGB(192,192,192));
ASSERT(nImageIndex!=-1);
VERIFY(sItem.LoadString(IDS_OX_CSTMZETABBEDORIENTATION));//"Orientation"
HTREEITEM hGroupItem=m_treeTabCtrlSettings.
AddControlGroup(sItem,hRootItem,TRUE,nImageIndex,nImageIndex);
ASSERT(hGroupItem!=NULL);
m_treeTabCtrlSettings.SetItemState(hGroupItem,TVIS_BOLD,TVIS_BOLD);
VERIFY(sItem.LoadString(IDS_OX_CSTMZETABBEDLEFT));//"Left"
VERIFY(m_treeTabCtrlSettings.AddRadioButton(IDC_RADIO_ORIENT_LEFT,
sItem,hGroupItem)!=NULL);
VERIFY(sItem.LoadString(IDS_OX_CSTMZETABBEDTOP));//"Top"
VERIFY(m_treeTabCtrlSettings.AddRadioButton(IDC_RADIO_ORIENT_TOP,
sItem,hGroupItem)!=NULL);
VERIFY(sItem.LoadString(IDS_OX_CSTMZETABBEDRIGHT));//"Right"
VERIFY(m_treeTabCtrlSettings.AddRadioButton(IDC_RADIO_ORIENT_RIGHT,
sItem,hGroupItem)!=NULL);
VERIFY(sItem.LoadString(IDS_OX_CSTMZETABBEDBOTTOM));//"Bottom"
VERIFY(m_treeTabCtrlSettings.AddRadioButton(IDC_RADIO_ORIENT_BOTTOM,
sItem,hGroupItem)!=NULL);
if((m_dwStyle&(TCS_VERTICAL|TCS_BOTTOM))==(TCS_VERTICAL|TCS_BOTTOM))
m_treeTabCtrlSettings.SetCheck(IDC_RADIO_ORIENT_RIGHT,OTITEM_CHECKED);
else if((m_dwStyle&TCS_VERTICAL)==TCS_VERTICAL)
m_treeTabCtrlSettings.SetCheck(IDC_RADIO_ORIENT_LEFT,OTITEM_CHECKED);
else if((m_dwStyle&TCS_BOTTOM)==TCS_BOTTOM)
m_treeTabCtrlSettings.SetCheck(IDC_RADIO_ORIENT_BOTTOM,OTITEM_CHECKED);
else
m_treeTabCtrlSettings.SetCheck(IDC_RADIO_ORIENT_TOP,OTITEM_CHECKED);
// appearance
nImageIndex=m_treeTabCtrlSettings.
AddImage(IDB_OX_CUSTOMIZETABBEDMDI_APPEARANCE,RGB(192,192,192));
ASSERT(nImageIndex!=-1);
VERIFY(sItem.LoadString(IDS_OX_CSTMZETABBEDAPPEARENCE));//"Appearance"
hGroupItem=m_treeTabCtrlSettings.
AddControlGroup(sItem,hRootItem,TRUE,nImageIndex,nImageIndex);
ASSERT(hGroupItem!=NULL);
m_treeTabCtrlSettings.SetItemState(hGroupItem,TVIS_BOLD,TVIS_BOLD);
VERIFY(sItem.LoadString(IDS_OX_CSTMZETABBEDTABBUTTONS));//"Tab buttons"
VERIFY(m_treeTabCtrlSettings.AddRadioButton(IDC_RADIO_APPEARANCE_TAB_BUTTONS,
sItem,hGroupItem)!=NULL);
VERIFY(sItem.LoadString(IDS_OX_CSTMZETABBEDPUSHBUTTONS));//"Push buttons"
VERIFY(m_treeTabCtrlSettings.AddRadioButton(IDC_RADIO_APPEARANCE_PUSH_BUTTONS,
sItem,hGroupItem)!=NULL);
VERIFY(sItem.LoadString(IDS_OX_CSTMZETABBEDFLATBUTTONS));//"Flat buttons"
VERIFY(m_treeTabCtrlSettings.AddRadioButton(IDC_RADIO_APPEARANCE_FLAT_BUTTONS,
sItem,hGroupItem)!=NULL);
if((m_dwStyle&(TCS_BUTTONS|TCS_FLATBUTTONS))==(TCS_BUTTONS|TCS_FLATBUTTONS))
{
m_treeTabCtrlSettings.
SetCheck(IDC_RADIO_APPEARANCE_FLAT_BUTTONS,OTITEM_CHECKED);
}
else if((m_dwStyle&TCS_BUTTONS)==TCS_BUTTONS)
{
m_treeTabCtrlSettings.
SetCheck(IDC_RADIO_APPEARANCE_PUSH_BUTTONS,OTITEM_CHECKED);
}
else
{
m_treeTabCtrlSettings.
SetCheck(IDC_RADIO_APPEARANCE_TAB_BUTTONS,OTITEM_CHECKED);
}
// display
nImageIndex=m_treeTabCtrlSettings.
AddImage(IDB_OX_CUSTOMIZETABBEDMDI_DISPLAY,RGB(192,192,192));
ASSERT(nImageIndex!=-1);
VERIFY(sItem.LoadString(IDS_OX_CSTMZETABBEDDISPLAY));//"Display"
hGroupItem=m_treeTabCtrlSettings.
AddControlGroup(sItem,hRootItem,TRUE,nImageIndex,nImageIndex);
ASSERT(hGroupItem!=NULL);
m_treeTabCtrlSettings.SetItemState(hGroupItem,TVIS_BOLD,TVIS_BOLD);
// positioning
nImageIndex=m_treeTabCtrlSettings.
AddImage(IDB_OX_CUSTOMIZETABBEDMDI_POSITIONING,RGB(192,192,192));
ASSERT(nImageIndex!=-1);
VERIFY(sItem.LoadString(IDS_OX_CSTMZETABBEDPOSITIONING));//"Positioning"
HTREEITEM hSubGroupItem=m_treeTabCtrlSettings.
AddControlGroup(sItem,hGroupItem,TRUE,nImageIndex,nImageIndex);
ASSERT(hSubGroupItem!=NULL);
m_treeTabCtrlSettings.SetItemState(hSubGroupItem,TVIS_BOLD,TVIS_BOLD);
VERIFY(sItem.LoadString(IDS_OX_CSTMZETABBEDDISPLAY1ROW));//"Display only one row of tabs"
VERIFY(m_treeTabCtrlSettings.AddRadioButton(IDC_RADIO_POSITIONING_SINGLELINE,
sItem,hSubGroupItem)!=NULL);
VERIFY(sItem.LoadString(IDS_OX_CSTMZETABBEDDISPLAYMROWS));//"Displays multiple rows of tabs, if necessary"
VERIFY(m_treeTabCtrlSettings.AddRadioButton(IDC_RADIO_POSITIONING_MULTILINE,
sItem,hSubGroupItem)!=NULL);
if((m_dwStyle&TCS_MULTILINE)==TCS_MULTILINE)
m_treeTabCtrlSettings.SetCheck(IDC_RADIO_POSITIONING_MULTILINE,OTITEM_CHECKED);
else
m_treeTabCtrlSettings.SetCheck(IDC_RADIO_POSITIONING_SINGLELINE,OTITEM_CHECKED);
VERIFY(sItem.LoadString(IDS_OX_CSTMZETABBEDHIGHLIGHT));//"Items under the pointer are automatically highlighted"
VERIFY(m_treeTabCtrlSettings.AddCheckBox(IDC_CHECK_DISPLAY_HOTTRACK,
sItem,hGroupItem)!=NULL);
VERIFY(sItem.LoadString(IDS_OX_CSTMZETABBEDWIDTH));//"Same width for all buttons"
VERIFY(m_treeTabCtrlSettings.AddCheckBox(IDC_CHECK_DISPLAY_FIXEDWIDTH,
sItem,hGroupItem)!=NULL);
VERIFY(sItem.LoadString(IDS_OX_CSTMZETABBEDSTRETCH));//"Stretch tabs to fill the entire width of the control"
VERIFY(m_treeTabCtrlSettings.AddCheckBox(IDC_CHECK_DISPLAY_NORAGGEDRIGHT,
sItem,hGroupItem)!=NULL);
VERIFY(sItem.LoadString(IDS_OX_CSTMZETABBEDOPPOSITE));//"Unused tabs move to the opposite side of the control"
VERIFY(m_treeTabCtrlSettings.AddCheckBox(IDC_CHECK_DISPLAY_SCROLLOPPOSITE,
sItem,hGroupItem)!=NULL);
VERIFY(sItem.LoadString(IDS_OX_CSTMZETABBEDALIGNICON));//"Aligns an icon with the left edge of a fixed-width tab"
VERIFY(m_treeTabCtrlSettings.AddCheckBox(IDC_CHECK_DISPLAY_FORCEICONLEFT,
sItem,hGroupItem)!=NULL);
VERIFY(sItem.LoadString(IDS_OX_CSTMZETABBEDALIGNLABEL));//"Aligns a label with the left edge of a fixed-width tab"
VERIFY(m_treeTabCtrlSettings.AddCheckBox(IDC_CHECK_DISPLAY_FORCELABELLEFT,
sItem,hGroupItem)!=NULL);
if((m_dwStyle&TCS_HOTTRACK)==TCS_HOTTRACK)
m_treeTabCtrlSettings.SetCheck(IDC_CHECK_DISPLAY_HOTTRACK,OTITEM_CHECKED);
if((m_dwStyle&TCS_FIXEDWIDTH)==TCS_FIXEDWIDTH)
m_treeTabCtrlSettings.SetCheck(IDC_CHECK_DISPLAY_FIXEDWIDTH,OTITEM_CHECKED);
if((m_dwStyle&TCS_RAGGEDRIGHT)!=TCS_RAGGEDRIGHT)
m_treeTabCtrlSettings.SetCheck(IDC_CHECK_DISPLAY_NORAGGEDRIGHT,OTITEM_CHECKED);
if((m_dwStyle&TCS_SCROLLOPPOSITE)==TCS_SCROLLOPPOSITE)
m_treeTabCtrlSettings.SetCheck(IDC_CHECK_DISPLAY_SCROLLOPPOSITE,OTITEM_CHECKED);
if((m_dwStyle&TCS_FORCEICONLEFT)==TCS_FORCEICONLEFT)
m_treeTabCtrlSettings.SetCheck(IDC_CHECK_DISPLAY_FORCEICONLEFT,OTITEM_CHECKED);
if((m_dwStyle&TCS_FORCELABELLEFT)==TCS_FORCELABELLEFT)
m_treeTabCtrlSettings.SetCheck(IDC_CHECK_DISPLAY_FORCELABELLEFT,OTITEM_CHECKED);
//
/////////////////////////////////
}
void COXCustomizeTabbedMDIPage::OnCheckSupportTabbedmdi()
{
// TODO: Add your control notification handler code here
if(!UpdateData(TRUE))
return;
m_treeTabCtrlSettings.EnableWindow(m_bSupportTabbedMDI);
GetDlgItem(IDC_OX_EDIT_OFFSET)->EnableWindow(m_bSupportTabbedMDI);
m_spinOffset.EnableWindow(m_bSupportTabbedMDI);
}