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

📄 treeviewoperation.cpp

📁 这是本人两年前兼职为某个公司做的石油钻进设计软件
💻 CPP
字号:
// TreeViewOperation.cpp : implementation file
//

#include "stdafx.h"
#include "CVenus.h"
#include "TreeViewOperation.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CTreeViewOperation

IMPLEMENT_DYNCREATE(CTreeViewOperation, CTreeView)

static char	csOperatorTree[20][20] =
{
	_T("操作"),
	_T("基本数据"),
	_T("新井"),
	_T("打开"),
	_T("保存"),
	_T("打印输入数据"),

	_T("分析计算"),
	_T("当前井"),

	_T("计算结果"),
	_T("显示当前计算结果"),
	_T("显示计算结果"),
	_T("打印结果"),

	_T("图形"),
	_T("显示当前图形"),
	_T("显示图形"),
	_T("图形设置"),
	_T("另存为位图"),
	_T("上一个图"),
	_T("下一个图"),
	_T("打印图形")
};

CTreeViewOperation::CTreeViewOperation()
{
}

CTreeViewOperation::~CTreeViewOperation()
{
}


BEGIN_MESSAGE_MAP(CTreeViewOperation, CTreeView)
	//{{AFX_MSG_MAP(CTreeViewOperation)
	ON_WM_CREATE()
	ON_NOTIFY_REFLECT(NM_DBLCLK, OnDblclk)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTreeViewOperation drawing

void CTreeViewOperation::OnDraw(CDC* pDC)
{
	CDocument* pDoc = GetDocument();
	// TODO: add draw code here
}

/////////////////////////////////////////////////////////////////////////////
// CTreeViewOperation diagnostics

#ifdef _DEBUG
void CTreeViewOperation::AssertValid() const
{
	CTreeView::AssertValid();
}

void CTreeViewOperation::Dump(CDumpContext& dc) const
{
	CTreeView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CTreeViewOperation message handlers

BOOL CTreeViewOperation::PreCreateWindow(CREATESTRUCT& cs) 
{
	cs.style |= TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT;
	
	return CTreeView::PreCreateWindow(cs);
}


int CTreeViewOperation::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CTreeView::OnCreate(lpCreateStruct) == -1)
		return -1;

	UINT  ID[20];

	ID[0]  = IDI_ICON1;
	ID[1]  = IDI_ICON2;
	ID[2]  = IDI_ICON3;
	ID[3]  = IDI_ICON4;
	ID[4]  = IDI_ICON5;
	ID[5]  = IDI_ICON6;
	ID[6]  = IDI_ICON7;
	ID[7]  = IDI_ICON8;
	ID[8]  = IDI_ICON9;
	ID[9]  = IDI_ICON10;
	ID[10] = IDI_ICON11;
	ID[11] = IDI_ICON12;
	ID[12] = IDI_ICON13;
	ID[13] = IDI_ICON14;
	ID[14] = IDI_ICON15;
	ID[15] = IDI_ICON16;
	ID[16] = IDI_ICON17;
	ID[17] = IDI_ICON18;
	ID[18] = IDI_ICON19;
	ID[19] = IDI_ICON10;
	
	// Create the Image List.
	m_TreeCtrl = &GetTreeCtrl();
	m_ImageList.Create(16, 16, TRUE, 27, 0);

	HICON hIcon;
	for(int i = 0; i < 20; i++)
	{
		hIcon = ::LoadIcon(AfxGetResourceHandle(),
		  MAKEINTRESOURCE(ID[i]));
		m_ImageList.Add(hIcon);
	}

	m_TreeCtrl->SetImageList (&m_ImageList, 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 = 1;
	TV_INSERTSTRUCT tvInsert;
	TreeCtrlItem1.hParent = TVI_ROOT;
	TreeCtrlItem1.hInsertAfter = TVI_LAST;
	tvInsert.item = TreeCtrlItem1.item;
	HTREEITEM hTreeItem0 = m_TreeCtrl->InsertItem(&TreeCtrlItem1);
	
	TreeCtrlItem1.hParent = hTreeItem0; 
	TreeCtrlItem1.item.pszText = csOperatorTree[1];
	TreeCtrlItem1.item.lParam = 1;
	TreeCtrlItem1.item.iImage = 0;
	TreeCtrlItem1.item.iSelectedImage = 0;
	tvInsert.item = TreeCtrlItem1.item;
	HTREEITEM hTreeItem1 = m_TreeCtrl->InsertItem(&TreeCtrlItem1);

	for(i = 2; i < 6; i++)
	{
		TreeCtrlItem1.hParent = hTreeItem1;
		TreeCtrlItem1.item.pszText = csOperatorTree[i];
		TreeCtrlItem1.item.lParam = i + 1;
		TreeCtrlItem1.item.iImage = i - 1;
		TreeCtrlItem1.item.iSelectedImage = i - 1;
		tvInsert.item = TreeCtrlItem1.item;
		m_TreeCtrl->InsertItem(&TreeCtrlItem1);
	}
	
	TreeCtrlItem1.hParent = hTreeItem0; 
	TreeCtrlItem1.item.pszText = csOperatorTree[6];
	TreeCtrlItem1.item.lParam = 6;
	TreeCtrlItem1.item.iImage = 5;
	TreeCtrlItem1.item.iSelectedImage = 5;
	tvInsert.item = TreeCtrlItem1.item;
	HTREEITEM hTreeItem2 = m_TreeCtrl->InsertItem(&TreeCtrlItem1);

	for(i = 7; i < 8; i++)
	{
		TreeCtrlItem1.hParent = hTreeItem2;
		TreeCtrlItem1.item.pszText = csOperatorTree[i];
		TreeCtrlItem1.item.lParam = i + 1;
		TreeCtrlItem1.item.iImage = i - 1;
		TreeCtrlItem1.item.iSelectedImage = i - 1;
		tvInsert.item = TreeCtrlItem1.item;
		m_TreeCtrl->InsertItem(&TreeCtrlItem1);
	}

	TreeCtrlItem1.hParent = hTreeItem0; 
	TreeCtrlItem1.item.pszText = csOperatorTree[8];
	TreeCtrlItem1.item.lParam = 9;
	TreeCtrlItem1.item.iImage = 8;
	TreeCtrlItem1.item.iSelectedImage = 8;
	tvInsert.item = TreeCtrlItem1.item;
	HTREEITEM hTreeItem3 = m_TreeCtrl->InsertItem(&TreeCtrlItem1);

	for(i = 9; i < 12; i++)
	{
		TreeCtrlItem1.hParent = hTreeItem3;
		TreeCtrlItem1.item.pszText = csOperatorTree[i];
		TreeCtrlItem1.item.lParam = i + 1;
		TreeCtrlItem1.item.iImage = i - 1;
		TreeCtrlItem1.item.iSelectedImage = i - 1;
		tvInsert.item = TreeCtrlItem1.item;
		m_TreeCtrl->InsertItem(&TreeCtrlItem1);
	}

	TreeCtrlItem1.hParent = hTreeItem0; 
	TreeCtrlItem1.item.pszText = csOperatorTree[12];
	TreeCtrlItem1.item.lParam = 13;
	TreeCtrlItem1.item.iImage = 12;
	TreeCtrlItem1.item.iSelectedImage = 12;
	tvInsert.item = TreeCtrlItem1.item;
	HTREEITEM hTreeItem4 = m_TreeCtrl->InsertItem(&TreeCtrlItem1);

	for(i = 13; i < 20; i++)
	{
		TreeCtrlItem1.hParent = hTreeItem4;
		TreeCtrlItem1.item.pszText = csOperatorTree[i];
		TreeCtrlItem1.item.lParam = i + 1;
		TreeCtrlItem1.item.iImage = i - 1;
		TreeCtrlItem1.item.iSelectedImage = i - 1;
		tvInsert.item = TreeCtrlItem1.item;
		m_TreeCtrl->InsertItem(&TreeCtrlItem1);
	}

	m_TreeCtrl->Expand(hTreeItem0, TVE_EXPAND);
	m_TreeCtrl->Expand(hTreeItem1, TVE_EXPAND);
	m_TreeCtrl->Expand(hTreeItem2, TVE_EXPAND);
	m_TreeCtrl->Expand(hTreeItem3, TVE_EXPAND);
	m_TreeCtrl->Expand(hTreeItem4, TVE_EXPAND);

	return 0;
}

void CTreeViewOperation::OnDblclk(NMHDR* pNMHDR, LRESULT* pResult) 
{
	HTREEITEM hTreeItem1 = m_TreeCtrl->GetSelectedItem();
	CString str = m_TreeCtrl->GetItemText(hTreeItem1);

	if( ((CCVenusApp*)AfxGetApp())->m_pGraphDlg == NULL ) return;

	for(int i = 1; i < 20; i++)
	{
		if(str.Compare(csOperatorTree[i]) == 0)
		{
			switch(i)
			{
			case 0x01:
				break;
			case 0x02:
				((CCVenusApp*)AfxGetApp())->OnBaseNew();
				break;
			case 0x03:
				((CCVenusApp*)AfxGetApp())->OnBaseOpen();
				break;
			case 0x04:
				((CCVenusApp*)AfxGetApp())->OnBaseSave();
				break;
			case 0x05:
//				((CCVenusApp*)AfxGetApp())->OnBasePrint();
				break;
			case 0x06:
				break;
			case 0x07:
				((CCVenusApp*)AfxGetApp())->OnAnalyseCalc1();
				break;
			case 0x08:
				break;
			case 0x09:
				((CCVenusApp*)AfxGetApp())->OnDisCurRst();
				break;
			case 0x0A:
				((CCVenusApp*)AfxGetApp())->OnDispCalcRst();
				break;
			case 0x0B:
//				AfxMessageBox("打印结果");
//				((CCVenusApp*)AfxGetApp())->OnBaseNew();
				break;
			case 0x0C:
				break;
			case 0x0D:
				((CCVenusApp*)AfxGetApp())->OnDisCurGraph();
				break;
			case 0x0E:
				((CCVenusApp*)AfxGetApp())->OnDispGraph1();
				break;
			case 0x0F:
				((CCVenusApp*)AfxGetApp())->OnDispGraph2();
				break;
			case 0x10:
				((CCVenusApp*)AfxGetApp())->OnBitmap();
				break;
			case 0x11:
				((CCVenusApp*)AfxGetApp())->OnDispGraph3();
				break;
			case 0x12:
				((CCVenusApp*)AfxGetApp())->OnDispGraph4();
				break;
			case 0x13:
				((CCVenusApp*)AfxGetApp())->OnDispGraph6();
				break;
			}
			break;
		}
	}	

	HTREEITEM m_hTreeItem = m_TreeCtrl->GetSelectedItem();
	
	*pResult = 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -