www.pudn.com > CustomTabCtrl.zip > TabMDIFrameWnd.cpp
/**********************************************************************
**
** TabMDIFrameWnd.cpp : implementation file of CTabMDIFrameWnd class
**
** by Andrzej Markowski July 2005
**
**********************************************************************/
#include "stdafx.h"
#include "TabMDIFrameWnd.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTabMDIFrameWnd
IMPLEMENT_DYNCREATE(CTabMDIFrameWnd, CMDIFrameWnd)
CTabMDIFrameWnd::CTabMDIFrameWnd()
{
}
CTabMDIFrameWnd::~CTabMDIFrameWnd()
{
}
BEGIN_MESSAGE_MAP(CTabMDIFrameWnd, CMDIFrameWnd)
//{{AFX_MSG_MAP(CTabMDIFrameWnd)
// NOTE - the ClassWizard will add and remove mapping macros here.
//}}AFX_MSG_MAP
ON_NOTIFY(CTCN_SELCHANGE, IDC_TABCTRL, OnSelchangeTabctrl)
ON_NOTIFY(CTCN_CLICK, IDC_TABCTRL, OnClickTabctrl)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTabMDIFrameWnd message handlers
void CTabMDIFrameWnd::OnSelchangeTabctrl(NMHDR* pNMHDR, LRESULT* pResult)
{
SetCurView(((CTC_NMHDR*)pNMHDR)->nItem);
*pResult = 0;
}
void CTabMDIFrameWnd::OnClickTabctrl(NMHDR* pNMHDR, LRESULT* pResult)
{
if(((CTC_NMHDR*)pNMHDR)->nItem==CTCHT_ONCLOSEBUTTON)
{
CMDIChildWnd* p = MDIGetActive();
if(p)
::PostMessage(p->m_hWnd,WM_CLOSE,0,0);
}
*pResult = 0;
}
BOOL CTabMDIFrameWnd::AddView(CString sLabel, CView *pView, CString sTooltip)
{
int ndx = m_wndTab.InsertItem(m_wndTab.GetItemCount(),sLabel,(DWORD)pView);
if(ndx>=0)
{
m_wndTab.SetCurSel(ndx);
m_wndTab.SetItemTooltipText(ndx,sTooltip);
MDIActivate(pView->GetParentFrame());
return TRUE;
}
return FALSE;
}
BOOL CTabMDIFrameWnd::DeleteView(CView *pView)
{
for(int i=0; i=0 && nNdxGetParentFrame());
return TRUE;
}
return FALSE;
}