⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spdworkspacebar.cpp

📁 这是本人两年前兼职为某个公司做的石油钻进设计软件
💻 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 + -