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

📄 treeviewproject.cpp

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

#include "stdafx.h"
#include "CVenus.h"
#include "TreeViewProject.h"

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

CString CTreeViewProject::csProjectTree[] =
{
	_T("工程"),
	_T("(1)工艺初选"),
	_T("(2)自喷井气水节点分析"),
	_T("(3)气举排水采气节点分析"),
	_T("(4)气举排水采气优化设计"),
	_T("(5)抽油机排水采气优化设计"),
	_T("(6)电潜泵排水采气节点分析"),
	_T("(7)电潜泵排水采气优化设计"),
	_T("(8)射流泵排水采气节点分析"),
	_T("(9)射流泵排水采气优化设计"),
	_T("(10)气井连续排液临界流量"),
	_T("(11)多相流垂管流压力梯度"),
	_T("(12)生产气井压力梯度"),
	_T("(13)注气井压力梯度"),
};


/////////////////////////////////////////////////////////////////////////////
// CTreeViewProject

IMPLEMENT_DYNCREATE(CTreeViewProject, CTreeView)

CTreeViewProject::CTreeViewProject()
{
	m_ItemCounter = sizeof(csProjectTree) / sizeof(csProjectTree[0]);
}

CTreeViewProject::~CTreeViewProject()
{
}


BEGIN_MESSAGE_MAP(CTreeViewProject, CTreeView)
	//{{AFX_MSG_MAP(CTreeViewProject)
	ON_WM_CREATE()
	ON_NOTIFY_REFLECT(NM_RETURN, OnReturn)
	ON_NOTIFY_REFLECT(NM_DBLCLK, OnDblclk)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTreeViewProject drawing

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

/////////////////////////////////////////////////////////////////////////////
// CTreeViewProject diagnostics

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

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

/////////////////////////////////////////////////////////////////////////////
// CTreeViewProject message handlers

int CTreeViewProject::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CTreeView::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	UINT  ID[15];

	ID[0]  = IDI_ICON1;
	ID[1]  = IDI_ICON28;
	ID[2]  = IDI_ICON29;
	ID[3]  = IDI_ICON30;
	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_ICON40;
	ID[14] = IDI_ICON41;

/*	BOOL b = m_TreeCtrl.Create(WS_VISIBLE | WS_CHILD | //WS_BORDER |
	        TVS_HASLINES |TVS_HASBUTTONS|
	        WS_EX_DLGMODALFRAME, CRect(0, 0, 300, 500), this, 
	        30000);
*/
	m_TreeCtrl = &GetTreeCtrl();
	m_ImageList.Create(16, 16, TRUE, 27, 0);

	HICON hIcon;

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

//	m_TreeCtrl.SetImageList (&m_ImageList, TVSIL_NORMAL);
	m_TreeCtrl->SetImageList (&m_ImageList, TVSIL_NORMAL);

//	HTREEITEM htItem = m_TreeCtrl.InsertItem(csProjectTree[0]);
	HTREEITEM htItem = m_TreeCtrl->InsertItem(csProjectTree[0]);

//	m_TreeCtrl.SetItemState( htItem, TVIS_BOLD, TVIS_BOLD );
	m_TreeCtrl->SetItemState( htItem, TVIS_BOLD, TVIS_BOLD );

	for(i = 1; i < m_ItemCounter; i++) 
	{
//		m_TreeCtrl.InsertItem (csProjectTree[i], i, i, htItem, TVI_LAST);
		m_TreeCtrl->InsertItem (csProjectTree[i], i, i, htItem, TVI_LAST);
	}

//	m_TreeCtrl.Expand(htItem, TVE_EXPAND);
	m_TreeCtrl->Expand(htItem, TVE_EXPAND);
	
	return 0;
}

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


void CTreeViewProject::OnReturn(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	
	*pResult = 0;
}

void CTreeViewProject::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 < m_ItemCounter; i++)
	{
		if(str.Compare(csProjectTree[i]) == 0)
		{
			((CCVenusApp*)AfxGetApp())->OnProject(IDM_PROJECT_1 + i - 1);
			break;
		}
	}
	
	*pResult = 0;
	
}

⌨️ 快捷键说明

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