📄 spdworkspacebar.cpp
字号:
// SpdWorkSpaceBar.cpp: implementation of the CSpdWorkSpaceBar class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "CVenus.h"
#include "SpdWorkspaceBar.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSpdWorkSpaceBar
BEGIN_MESSAGE_MAP(CSpdWorkSpaceBar, CBCGSizingControlBar)
//{{AFX_MSG_MAP(CSpdWorkSpaceBar)
ON_WM_CREATE()
ON_WM_SIZE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSpdWorkSpaceBar construction/destruction
TCHAR CSpdWorkSpaceBar::csOperatorTree[18][30] =
{
// _T("操作"),
_T("工程"),
_T("新建"),
_T("打开"),
_T("保存"),
_T("另存为"),
_T("关闭工程文件"),
_T("数据"),
_T("修改工程文件信息"),
_T("基本数据录入"),
_T("射孔弹数据库"),
_T("射孔设计"), // 10
_T("射孔参数校正"), // 11
_T("射孔参数优选"), // 12
_T("产能及表皮系数预测"), // 13
_T("防砂设计"), // 14
_T("防砂优化设计"), // 15
_T("防砂压力设计"), // 16
_T("常规负压设计") // 17
};
TCHAR CSpdWorkSpaceBar::csGraphTree[14][30] =
{
_T("射孔设计输出"),
_T("输出到WORD文档"),
_T("产率图"),
_T("孔深/孔密"),
_T("孔深/相位角"),
_T("非均质性/相位角"),
_T("孔深/孔径"),
_T("孔深/压厚"),
_T("孔深/压程"),
_T("孔深/污染深度"),
_T("污染深度/实际孔深"),
_T("孔深/污染程度"),
_T("孔深/非均质性"),
_T("图形比例")
};
TCHAR CSpdWorkSpaceBar::csGraphTree_3[12][30] =
{
_T("射孔设计输出"),
_T("输出到WORD文档"),
_T("产率图"),
_T("孔深/孔密"),
_T("孔深/相位"),
_T("孔深/孔径"),
_T("孔深/生产压差"),
_T("孔深/压程"),
_T("孔深/地层渗透率"),
_T("孔深/污染程度"),
_T("孔深/非均质性"),
_T("图形比例")
};
CSpdWorkSpaceBar::CSpdWorkSpaceBar()
{
// TODO: add one-time construction code here
}
CSpdWorkSpaceBar::~CSpdWorkSpaceBar()
{
}
/////////////////////////////////////////////////////////////////////////////
// CSpdWorkSpaceBar message handlers
int CSpdWorkSpaceBar::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CBCGSizingControlBar::OnCreate(lpCreateStruct) == -1)
return -1;
CRect rectDummy;
rectDummy.SetRectEmpty ();
// Create tabs window:
if (!m_wndTabs.Create (CBCGTabWnd::STYLE_3D, rectDummy, this, 1))
{
TRACE0("Failed to create workspace tab window\n");
return -1; // fail to create
}
m_wndTabs.SetImageList (IDB_WORKSPACE, 16, RGB (255, 0, 255));
// Create tree windows.
// TODO: create your own tab windows here:
const DWORD dwViewStyle = WS_CHILD | WS_VISIBLE | TVS_HASLINES |
TVS_LINESATROOT | TVS_HASBUTTONS | TVS_SHOWSELALWAYS;
if (!m_wndTree1.Create (dwViewStyle, rectDummy, &m_wndTabs, 2) ||
!m_wndTree2.Create (dwViewStyle, rectDummy, &m_wndTabs, 3) ||
!m_wndTree3.Create (dwViewStyle, rectDummy, &m_wndTabs, 4))
{
TRACE0("Failed to create workspace view\n");
return -1; // fail to create
}
{
UINT ID[18];
ID[0] = IDI_ICON_PROJECT;
ID[1] = IDI_ICON_NEW;
ID[2] = IDI_ICON_OPEN;
ID[3] = IDI_ICON_SAVE;
ID[4] = IDI_ICON_SAVE;
ID[5] = IDI_ICON_CLOSE;
ID[6] = IDI_NEW1;
ID[7] = IDI_NEW2;
ID[8] = IDI_ICON_BASE;
ID[9] = IDI_DATABASE;
ID[10] = IDI_ICON_DESIGN;
ID[11] = IDI_NEW3;
ID[12] = IDI_NEW4;
ID[13] = IDI_NEW5;
ID[14] = IDI_NEW6;
ID[15] = IDI_NEW7;
ID[16] = IDI_NEW8;
ID[17] = IDI_NEW9;
// Create the Image List.
m_ImageList1.Create(16, 16, TRUE, 27, 0);
HICON hIcon;
for(int i = 0; i < 18; i++)
{
hIcon = ::LoadIcon(AfxGetResourceHandle(),
MAKEINTRESOURCE(ID[i]));
m_ImageList1.Add(hIcon);
}
m_wndTree1.SetImageList (&m_ImageList1, TVSIL_NORMAL);
TV_INSERTSTRUCT TreeCtrlItem1;
TreeCtrlItem1.item.pszText = csOperatorTree[0];
TreeCtrlItem1.item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE| TVIF_PARAM;
TreeCtrlItem1.item.iImage = 0;
TreeCtrlItem1.item.iSelectedImage = 0;
TreeCtrlItem1.item.lParam = 0;
TreeCtrlItem1.hParent = TVI_ROOT;
TreeCtrlItem1.hInsertAfter = TVI_LAST;
HTREEITEM hTreeItem1 = m_wndTree1.InsertItem(&TreeCtrlItem1);
for(i = 1; i < 6; i++)
{
TreeCtrlItem1.hParent = hTreeItem1;
TreeCtrlItem1.item.pszText = csOperatorTree[i];
TreeCtrlItem1.item.lParam = i ;
TreeCtrlItem1.item.iImage = i ;
TreeCtrlItem1.item.iSelectedImage = i ;
m_wndTree1.InsertItem(&TreeCtrlItem1);
}
TreeCtrlItem1.hParent = TVI_ROOT;
TreeCtrlItem1.item.pszText = csOperatorTree[6];
TreeCtrlItem1.item.lParam = 6;
TreeCtrlItem1.item.iImage = 6;
TreeCtrlItem1.item.iSelectedImage = 6;
HTREEITEM hTreeItem2 = m_wndTree1.InsertItem(&TreeCtrlItem1);
for(i = 7; i < 10; i++)
{
TreeCtrlItem1.hParent = hTreeItem2;
TreeCtrlItem1.item.pszText = csOperatorTree[i];
TreeCtrlItem1.item.lParam = i ;
TreeCtrlItem1.item.iImage = i ;
TreeCtrlItem1.item.iSelectedImage = i;
m_wndTree1.InsertItem(&TreeCtrlItem1);
}
TreeCtrlItem1.hParent = TVI_ROOT;
TreeCtrlItem1.item.pszText = csOperatorTree[10];
TreeCtrlItem1.item.lParam = 10;
TreeCtrlItem1.item.iImage = 10;
TreeCtrlItem1.item.iSelectedImage = 10;
HTREEITEM hTreeItem3 = m_wndTree1.InsertItem(&TreeCtrlItem1);
HTREEITEM hTreeItem4;
for(i = 11; i < 15; i++)
{
TreeCtrlItem1.hParent = hTreeItem3;
TreeCtrlItem1.item.pszText = csOperatorTree[i];
TreeCtrlItem1.item.lParam = i ;
TreeCtrlItem1.item.iImage = i ;
TreeCtrlItem1.item.iSelectedImage = i ;
hTreeItem4 = m_wndTree1.InsertItem(&TreeCtrlItem1);
}
for(i = 15; i < 17; i++)
{
TreeCtrlItem1.hParent = hTreeItem4;
TreeCtrlItem1.item.pszText = csOperatorTree[i];
TreeCtrlItem1.item.lParam = i ;
TreeCtrlItem1.item.iImage = i ;
TreeCtrlItem1.item.iSelectedImage = i ;
m_wndTree1.InsertItem(&TreeCtrlItem1);
}
for(i = 17; i < 18; i++)
{
TreeCtrlItem1.hParent = hTreeItem3;
TreeCtrlItem1.item.pszText = csOperatorTree[i];
TreeCtrlItem1.item.lParam = i ;
TreeCtrlItem1.item.iImage = i ;
TreeCtrlItem1.item.iSelectedImage = i ;
m_wndTree1.InsertItem(&TreeCtrlItem1);
}
m_wndTree1.Expand(hTreeItem1, TVE_EXPAND);
m_wndTree1.Expand(hTreeItem2, TVE_EXPAND);
m_wndTree1.Expand(hTreeItem3, TVE_EXPAND);
m_wndTree1.Expand(hTreeItem4, TVE_EXPAND);
}
{
UINT ID[14];
ID[0] = IDI_NEW10;
ID[1] = IDI_ICON_WORD;
ID[2] = IDI_ICON_GRAPH;
ID[3] = IDI_NEW11;
ID[4] = IDI_ICON31;
ID[5] = IDI_ICON32;
ID[6] = IDI_ICON33;
ID[7] = IDI_ICON34;
ID[8] = IDI_ICON35;
ID[9] = IDI_ICON36;
ID[10] = IDI_ICON37;
ID[11] = IDI_ICON38;
ID[12] = IDI_ICON39;
ID[13] = IDI_ICON_SCALE;
m_ImageList2.Create(16, 16, TRUE, 27, 0);
HICON hIcon;
for(int i = 0; i < 14; i++)
{
hIcon = ::LoadIcon (AfxGetResourceHandle(),
MAKEINTRESOURCE(ID[i]));
m_ImageList2.Add(hIcon);
}
m_wndTree2.SetImageList (&m_ImageList2, TVSIL_NORMAL);
TV_INSERTSTRUCT TreeCtrlItem1;
TreeCtrlItem1.item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_PARAM;
TreeCtrlItem1.item.pszText = csGraphTree[0];
TreeCtrlItem1.item.iImage = 0;
TreeCtrlItem1.item.lParam = 0;
TreeCtrlItem1.item.iSelectedImage = 0;
TreeCtrlItem1.hInsertAfter = TVI_LAST;
TreeCtrlItem1.hParent = TVI_ROOT;
HTREEITEM hTreeItem0 = m_wndTree2.InsertItem(&TreeCtrlItem1);
TreeCtrlItem1.hParent = hTreeItem0;
TreeCtrlItem1.item.pszText = csGraphTree[1];
TreeCtrlItem1.item.iImage = 1;
TreeCtrlItem1.item.lParam = 1;
TreeCtrlItem1.item.iSelectedImage = 1;
HTREEITEM hTreeItem1 = m_wndTree2.InsertItem(&TreeCtrlItem1);
TreeCtrlItem1.item.pszText = csGraphTree[2];
TreeCtrlItem1.item.iImage = 2;
TreeCtrlItem1.item.lParam = 2;
TreeCtrlItem1.item.iSelectedImage = 2;
TreeCtrlItem1.hParent = TVI_ROOT;
HTREEITEM hTreeItem2 = m_wndTree2.InsertItem(&TreeCtrlItem1);
for(i = 3; i < 13; i++)
{
TreeCtrlItem1.hParent = hTreeItem2;
TreeCtrlItem1.item.pszText = csGraphTree[i];
TreeCtrlItem1.item.iImage = i;
TreeCtrlItem1.item.lParam = i;
TreeCtrlItem1.item.iSelectedImage = i;
m_wndTree2.InsertItem(&TreeCtrlItem1);
}
m_wndTree2.Expand(hTreeItem0, TVE_EXPAND);
m_wndTree2.Expand(hTreeItem2, TVE_EXPAND);
{
m_wndTree3.SetImageList (&m_ImageList2, TVSIL_NORMAL);
TV_INSERTSTRUCT TreeCtrlItem1;
TreeCtrlItem1.item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_PARAM;
TreeCtrlItem1.item.pszText = csGraphTree_3[0];
TreeCtrlItem1.item.iImage = 0;
TreeCtrlItem1.item.lParam = 0;
TreeCtrlItem1.item.iSelectedImage = 0;
TreeCtrlItem1.hInsertAfter = TVI_LAST;
TreeCtrlItem1.hParent = TVI_ROOT;
HTREEITEM hTreeItem0 = m_wndTree3.InsertItem(&TreeCtrlItem1);
TreeCtrlItem1.hParent = hTreeItem0;
TreeCtrlItem1.item.pszText = csGraphTree_3[1];
TreeCtrlItem1.item.iImage = 1;
TreeCtrlItem1.item.lParam = 1;
TreeCtrlItem1.item.iSelectedImage = 1;
HTREEITEM hTreeItem1 = m_wndTree3.InsertItem(&TreeCtrlItem1);
TreeCtrlItem1.item.pszText = csGraphTree_3[2];
TreeCtrlItem1.item.iImage = 2;
TreeCtrlItem1.item.lParam = 2;
TreeCtrlItem1.item.iSelectedImage = 2;
TreeCtrlItem1.hParent = TVI_ROOT;
HTREEITEM hTreeItem2 = m_wndTree3.InsertItem(&TreeCtrlItem1);
for(i = 3; i < 11; i++)
{
TreeCtrlItem1.hParent = hTreeItem2;
TreeCtrlItem1.item.pszText = csGraphTree_3[i];
TreeCtrlItem1.item.iImage = i+2;
TreeCtrlItem1.item.lParam = i;
TreeCtrlItem1.item.iSelectedImage = i+2;
m_wndTree3.InsertItem(&TreeCtrlItem1);
}
m_wndTree3.Expand(hTreeItem0, TVE_EXPAND);
m_wndTree3.Expand(hTreeItem2, TVE_EXPAND);
}
}
// Attach tree windows to tab:
// m_wndTabs.AddTab (&m_wndTree1, _T("操作"), 0 /* Image number */);
// m_wndTabs.AddTab (&m_wndTree2, _T("图表"), 1 /* Image number */);
// m_wndTabs.AddTab (&m_wndTree3, _T("图表"), 1 /* Image number */);
return 0;
}
void CSpdWorkSpaceBar::OnSize(UINT nType, int cx, int cy)
{
CBCGSizingControlBar::OnSize(nType, cx, cy);
// Tab control should cover a whole client area:
m_wndTabs.SetWindowPos (NULL, -1, -1, cx, cy,
SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOZORDER);
}
void CSpdWorkSpaceBar::ShowGas()
{
RemoveAllTree();
m_wndTabs.AddTab (&m_wndTree1, _T("操作"), 0 /* Image number */);
m_wndTabs.AddTab (&m_wndTree3, _T("图表"), 1 /* Image number */);
}
void CSpdWorkSpaceBar::ShowOil()
{
RemoveAllTree();
m_wndTabs.AddTab (&m_wndTree1, _T("操作"), 0 /* Image number */);
m_wndTabs.AddTab (&m_wndTree2, _T("图表"), 1 /* Image number */);
}
void CSpdWorkSpaceBar::RemoveAllTree()
{
m_wndTabs.RemoveAllTabs();
m_wndTree1.ShowWindow(SW_HIDE);
m_wndTree2.ShowWindow(SW_HIDE);
m_wndTree3.ShowWindow(SW_HIDE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -