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

📄 algorithm2view.cpp

📁 汉诺塔算法演示程序
💻 CPP
字号:
// Algorithm2View.cpp : CAlgorithm2View 类的实现
//

#include "stdafx.h"
#include "Algorithm2.h"

#include "Algorithm2Doc.h"
#include "Algorithm2View.h"
#include ".\algorithm2view.h"
#include "AlgorithmFactory.h"
#include "SelectAlgorithm.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// CAlgorithm2View

IMPLEMENT_DYNCREATE(CAlgorithm2View, CView)

BEGIN_MESSAGE_MAP(CAlgorithm2View, CView)
	ON_COMMAND(ID_FILE_ALG_SELECT, OnFileAlgSelect)
	ON_COMMAND(ID_FILE_SETARGUMENT, OnFileSetargument)
	ON_UPDATE_COMMAND_UI(ID_FILE_SETARGUMENT, OnUpdateFileSetargument)
	ON_COMMAND(ID_FILE_GO, OnFileGo)
	ON_UPDATE_COMMAND_UI(ID_FILE_GO, OnUpdateFileGo)
END_MESSAGE_MAP()

// CAlgorithm2View 构造/析构

CAlgorithm2View::CAlgorithm2View():pAlg(NULL)
{
	// TODO: 在此处添加构造代码

}

CAlgorithm2View::~CAlgorithm2View()
{
}

BOOL CAlgorithm2View::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: 在此处通过修改 CREATESTRUCT cs 来修改窗口类或
	// 样式

	return CView::PreCreateWindow(cs);
}

// CAlgorithm2View 绘制

void CAlgorithm2View::OnDraw(CDC*/* pDC*/)
{
	CAlgorithm2Doc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	if (!pDoc)
		return;

	// TODO: 在此处为本机数据添加绘制代码
	
}


// CAlgorithm2View 诊断

#ifdef _DEBUG
void CAlgorithm2View::AssertValid() const
{
	CView::AssertValid();
}

void CAlgorithm2View::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CAlgorithm2Doc* CAlgorithm2View::GetDocument() const // 非调试版本是内联的
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CAlgorithm2Doc)));
	return (CAlgorithm2Doc*)m_pDocument;
}
#endif //_DEBUG


// CAlgorithm2View 消息处理程序
// 
// void CAlgorithm2View::OnHanoiSetpie()
// {
// 	// TODO: Add your command handler code here
// 	CDC *pDC = GetDC();
// 	pAlg = Hanoi::Instance();
// 	algFlg = HANOI;
// 	Invalidate(TRUE);
// 	pAlg->initial(this,pDC);
// }

// void CAlgorithm2View::callAlgorithm(AlgorithmFlag flag)
// {	//选择算后,用于初始化算法
// 	algFlg = flag;
// 	CDC *pDC = GetDC();
// 	pAlg = Hanoi::Instance();
// 
// 	pAlg->initial(this,pDC);
// /*	Invalidate(TRUE);*/	
// /*	pAlg->doAlgorithm(this,pDC);*/
// }

void CAlgorithm2View::OnFileAlgSelect()
{	//选择算法
	// TODO: Add your command handler code here
	CSelectAlgorithm Salgorithm;
	Salgorithm.m_algorithm = _T("Hanoi");
	Salgorithm.DoModal();
	if (Salgorithm.m_algorithm == _T("Hanoi")){	//如果添加算法可在这加入接口代码
		CDC *pDC = GetDC();
		pAlg = Hanoi::Instance();

		pAlg->initial(this,pDC);
	}
// 	else if(Salgorithm.m_algorithm == _T("BiTree"))
// 		callAlgorithm(BITREE);
	else
	{
		ASSERT(SAlgorithm.m_algorithm == _T("Hanoi"));
		CDC *pDC = GetDC();
		pAlg = Hanoi::Instance();

		pAlg->initial(this,pDC);
	}
}

void CAlgorithm2View::OnFileSetargument()
{	
	CDC *pDC = GetDC();
	if(pAlg) pAlg->initial(this,pDC);
}

void CAlgorithm2View::OnUpdateFileSetargument(CCmdUI *pCmdUI)
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable(pAlg != NULL);
}

void CAlgorithm2View::OnFileGo()
{	//运行算法
	// TODO: Add your command handler code here
	CDC *pDC = GetDC();
	pAlg->doAlgorithm(this,pDC);
}

void CAlgorithm2View::OnUpdateFileGo(CCmdUI *pCmdUI)
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable(pAlg != NULL);
}

⌨️ 快捷键说明

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