📄 sheettabctrl.cpp
字号:
// SheetTabCtrl.cpp : 实现文件
//
#include "stdafx.h"
#include "GameMaster.h"
#include "SheetTabCtrl.h"
#include ".\sheettabctrl.h"
// CSheetTabCtrl
int CSheetTabCtrl::taskNum = 1;//初始化静态成员变量
IMPLEMENT_DYNAMIC(CSheetTabCtrl, CTabCtrl)
CSheetTabCtrl::CSheetTabCtrl()
{
pageNum = 0;
m_curTab = -1;
}
CSheetTabCtrl::~CSheetTabCtrl()
{
for(int i=0;i<pageNum;i++)
delete tabArray[i];
}
BEGIN_MESSAGE_MAP(CSheetTabCtrl, CTabCtrl)
ON_WM_LBUTTONDOWN()
END_MESSAGE_MAP()
//新建页面
void CSheetTabCtrl::NewPage()
{
CString title;
title.Format("任务%d",taskNum);
taskNum++;
InsertItem(pageNum,title);
titleArray[pageNum] = title;
tabArray[pageNum] = new CTask(title);//新建任务
tabArray[pageNum]->CreateTask(IDD_FORMVIEW_ADDLIST,this);//创建任务线程
if(m_curTab != -1)
tabArray[m_curTab]->ShowWindow(SW_HIDE);
SetRectangle(pageNum);
m_curTab = pageNum;
SetCurSel(m_curTab);
pageNum++;
}
//删除当前页面
void CSheetTabCtrl::DeletePage()
{
tabArray[m_curTab]->ShowWindow(SW_HIDE);
delete tabArray[m_curTab];
if(pageNum > 1)
{
for(int i=m_curTab;i<pageNum-1;i++)
{
tabArray[i] = tabArray[i+1];
titleArray[i] = titleArray[i+1];
}
DeleteItem(m_curTab);
if(m_curTab > 0)
m_curTab--;
pageNum--;
tabArray[m_curTab]->ShowWindow(SW_SHOW);
SetCurFocus(m_curTab);
}
else
{
DeleteItem(m_curTab);
pageNum = 0;
m_curTab = -1;
taskNum = 1;
}
}
/*
//删除指定页
void CSheetTabCtrl::DeletePage(int index)
{
tabArray[index]->ShowWindow(SW_HIDE);
DeleteItem(index);
delete tabArray[index];
for(int i=index;i<pageNum-1;i++)
{
tabArray[i] = tabArray[i+1];
titleArray[i] = titleArray[i+1];
}
pageNum--;
}
*/
int CSheetTabCtrl::GetCount()
{
return pageNum;
}
CTask *CSheetTabCtrl::GetCurTask()
{
return tabArray[m_curTab];
}
CString CSheetTabCtrl::GetCurTitle()
{
return titleArray[m_curTab];
}
DWORD CSheetTabCtrl::GetCurAddress()
{
return tabArray[m_curTab]->dlg.GetCurAddress();
}
CListCtrl &CSheetTabCtrl::GetCurList()
{
return tabArray[m_curTab]->dlg.m_addressList;
}
CDataManager &CSheetTabCtrl::GetCurArray()
{
return tabArray[m_curTab]->dlg.addressArray;
}
void CSheetTabCtrl::SetRectangle(int index)
{
CRect tabRect;
GetClientRect(&tabRect);
tabRect.left += 15;
tabRect.top += 20;
tabRect.right -= 20;
tabRect.bottom -= 20;
tabArray[index]->MoveWindow(&tabRect);
tabArray[index]->ShowWindow(SW_SHOW);
}
// CSheetTabCtrl 消息处理程序
void CSheetTabCtrl::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CTabCtrl::OnLButtonDown(nFlags, point);
if(m_curTab != GetCurFocus())
{
tabArray[m_curTab]->ShowWindow(SW_HIDE);
m_curTab = GetCurFocus();
tabArray[m_curTab]->ShowWindow(SW_SHOW);
tabArray[m_curTab]->SetFocus();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -