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

📄 analysetree.cpp

📁 一个类c语言的解释器
💻 CPP
字号:
// AnalyseTree.cpp : implementation file
//

#include "stdafx.h"
#include "cmmg.h"
#include "AnalyseTree.h"
#include <vector>
using namespace std;

// AnalyseTree dialog

IMPLEMENT_DYNAMIC(AnalyseTree, CDialog)

AnalyseTree::AnalyseTree(CWnd* pParent /*=NULL*/)
	: CDialog(AnalyseTree::IDD, pParent)
{

}

AnalyseTree::~AnalyseTree()
{
}

void AnalyseTree::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
}

AnalyseTree::AnalyseTree(std::string tree_string, CWnd* pParentWnd) : CDialog(AnalyseTree::IDD, pParentWnd){
	this->tree_string = tree_string;
}

void AnalyseTree::insertItems(HTREEITEM hParent,TreeNode* t,int length){
	int size = t->children->size();
	CString buff(t->describe.c_str());
	HTREEITEM htreeitem ;
	if (hParent==NULL)
	{
		htreeitem = NULL;
		if (t->describe=="\nroot")
		{
			htreeitem = TVI_ROOT;
		}
	}
	else{
		htreeitem = this->tree->InsertItem(buff,hParent);
	}
	for (int i=0;i<size;i++)
	{
		this->insertItems(htreeitem,t->children->at(i),length+1);
	}
}

int AnalyseTree::DoModal(){
	return CDialog::DoModal();
}

BOOL AnalyseTree::OnInitDialog(){
	CDialog::OnInitDialog();
	//tree.Create(WS_VISIBLE | WS_TABSTOP | WS_CHILD | WS_BORDER
	//	| TVS_HASBUTTONS | TVS_LINESATROOT | TVS_HASLINES
	//	| TVS_DISABLEDRAGDROP,
	//	CRect(7, 7, 213, 255), this, 0x1005);
	InitCommonControls();
	tree = (CTreeCtrl*)this->GetDlgItem(IDC_TREE1);
	TreeNode * t = build_tree(tree_string,0);
	insertItems(NULL,t,0);
	return true;
}
BEGIN_MESSAGE_MAP(AnalyseTree, CDialog)
END_MESSAGE_MAP()


// AnalyseTree message handlers

⌨️ 快捷键说明

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