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

📄 tec2000view.cpp

📁 模拟了tec2000的所有功能
💻 CPP
字号:
// TEC2000View.cpp : implementation of the CTEC2000View class
//

#include "stdafx.h"
#include "TEC2000.h"

#include "TEC2000Doc.h"
#include "TEC2000View.h"
#include "MainFrm.h"

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

/////////////////////////////////////////////////////////////////////////////
// CTEC2000View

IMPLEMENT_DYNCREATE(CTEC2000View, CView)

BEGIN_MESSAGE_MAP(CTEC2000View, CView)
	//{{AFX_MSG_MAP(CTEC2000View)
	ON_COMMAND(ID_MODE_COMPILE, OnModeCompile)
	ON_COMMAND(ID_MODE_MICRO, OnModeMicro)
	ON_UPDATE_COMMAND_UI(ID_MODE_COMPILE, OnUpdateModeCompile)
	ON_UPDATE_COMMAND_UI(ID_MODE_MICRO, OnUpdateModeMicro)
	ON_COMMAND(ID_MODE_OFFSIMU, OnModeOffsimu)
	ON_UPDATE_COMMAND_UI(ID_MODE_OFFSIMU, OnUpdateModeOffsimu)
	ON_COMMAND(ID_MODE_CROS, OnModeCros)
	ON_UPDATE_COMMAND_UI(ID_MODE_CROS, OnUpdateModeCros)
	ON_COMMAND(ID_MODE_UNASM, OnModeUnasm)
	ON_UPDATE_COMMAND_UI(ID_MODE_UNASM, OnUpdateModeUnasm)
	ON_COMMAND(ID_LOADCOD, OnLoadcod)
	ON_COMMAND(ID_RUN, OnRun)
	ON_COMMAND(ID_DWRUN, OnDwrun)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTEC2000View construction/destruction

CTEC2000View::CTEC2000View()
{
	this->m_pMicroProDlg.status=0;
	this->m_pOffSimuDlg.status=0;
	this->m_pCrosAsmDlg.status=0;
	this->m_pUnAsmDlg.status=0;
	// TODO: add construction code here

}

CTEC2000View::~CTEC2000View()
{
}

BOOL CTEC2000View::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CTEC2000View drawing

void CTEC2000View::OnDraw(CDC* pDC)
{
	CTEC2000Doc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
}

/////////////////////////////////////////////////////////////////////////////
// CTEC2000View diagnostics

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

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

CTEC2000Doc* CTEC2000View::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CTEC2000Doc)));
	return (CTEC2000Doc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CTEC2000View message handlers

void CTEC2000View::OnModeCompile() 
{
	if(this->m_pCompileDlg.status==1){
		this->m_pCompileDlg.ShowWindow(SW_HIDE);
		this->m_pCompileDlg.status=2;
	}
	else{
		this->m_pCompileDlg.ShowWindow(SW_SHOW);
		this->m_pCompileDlg.status=1;
		if(this->m_pMicroProDlg.status==1){
			this->m_pMicroProDlg.ShowWindow(SW_HIDE);
	    	this->m_pMicroProDlg.status=2;
		}
		if(this->m_pOffSimuDlg.status==1){
			this->m_pOffSimuDlg.ShowWindow(SW_HIDE);
	    	this->m_pOffSimuDlg.status=2;
		}
		if(this->m_pCrosAsmDlg.status==1){
			this->m_pCrosAsmDlg.ShowWindow(SW_HIDE);
			this->m_pCrosAsmDlg.status=2;
		}
		if(this->m_pUnAsmDlg.status==1){
			this->m_pUnAsmDlg.ShowWindow(SW_HIDE);
			this->m_pUnAsmDlg.status=2;
		}
		
	}
	// TODO: Add your command handler code here
	
}

BOOL CTEC2000View::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) 
{
	CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);

	// TODO: Add your specialized code here and/or call the base class
	this->m_pUnAsmDlg.Create(IDD_UNASM,this);
   	this->m_pUnAsmDlg.ShowWindow(SW_HIDE);
   	this->m_pUnAsmDlg.status=2;
	this->m_pCompileDlg.Create(IDD_COMPILE,this);
	this->m_pCompileDlg.ShowWindow(SW_SHOW);
	this->m_pCompileDlg.status=1;

	CTEC2000App *pApp;
    pApp=(CTEC2000App *)AfxGetApp();

    CMainFrame *pFrm;
    pFrm=(CMainFrame *)pApp->GetMainWnd();
	pFrm->m_pMCompileDlg=&(this->m_pCompileDlg);
	return TRUE;
}

void CTEC2000View::OnModeMicro() 
{
	if(this->m_pMicroProDlg.status==0){
		this->m_pMicroProDlg.Create(IDD_MICROPRODLG,this);
    	this->m_pMicroProDlg.ShowWindow(SW_SHOW);
     	this->m_pMicroProDlg.status=1;
		if(this->m_pCompileDlg.status==1){
			this->m_pCompileDlg.ShowWindow(SW_HIDE);
			this->m_pCompileDlg.status=2;
		}
		if(this->m_pOffSimuDlg.status==1){
			this->m_pOffSimuDlg.ShowWindow(SW_HIDE);
			this->m_pOffSimuDlg.status=2;
		}
		if(this->m_pCrosAsmDlg.status==1){
			this->m_pCrosAsmDlg.ShowWindow(SW_HIDE);
			this->m_pCrosAsmDlg.status=2;
		}
		if(this->m_pUnAsmDlg.status==1){
			this->m_pUnAsmDlg.ShowWindow(SW_HIDE);
			this->m_pUnAsmDlg.status=2;
		}
	}
	else if(this->m_pMicroProDlg.status==2){
		this->m_pMicroProDlg.ShowWindow(SW_SHOW);
		this->m_pMicroProDlg.status=1;
        if(this->m_pCompileDlg.status==1){
			this->m_pCompileDlg.ShowWindow(SW_HIDE);
	    	this->m_pCompileDlg.status=2;
		}
		if(this->m_pOffSimuDlg.status==1){
			this->m_pOffSimuDlg.ShowWindow(SW_HIDE);
	    	this->m_pOffSimuDlg.status=2;
		}
		if(this->m_pCrosAsmDlg.status==1){
			this->m_pCrosAsmDlg.ShowWindow(SW_HIDE);
			this->m_pCrosAsmDlg.status=2;
		}
		if(this->m_pUnAsmDlg.status==1){
			this->m_pUnAsmDlg.ShowWindow(SW_HIDE);
			this->m_pUnAsmDlg.status=2;
		}
	}
	else{
		this->m_pMicroProDlg.ShowWindow(SW_HIDE);
		this->m_pMicroProDlg.status=2;
	}
	
}

void CTEC2000View::OnUpdateModeCompile(CCmdUI* pCmdUI) 
{
	if(this->m_pCompileDlg.status==1){
		pCmdUI->SetCheck(TRUE);
	}
	else if(this->m_pCompileDlg.status==2){
		pCmdUI->SetCheck(FALSE);
	}
	
}

void CTEC2000View::OnUpdateModeMicro(CCmdUI* pCmdUI) 
{
	if(this->m_pMicroProDlg.status==1)
		pCmdUI->SetCheck(TRUE);
	else if(this->m_pMicroProDlg.status==2)
		pCmdUI->SetCheck(FALSE);
	
}

void CTEC2000View::OnModeOffsimu() 
{
	if(this->m_pOffSimuDlg.status==0){
		this->m_pOffSimuDlg.Create(IDD_OFFSIMU,this);
    	this->m_pOffSimuDlg.ShowWindow(SW_SHOW);
     	this->m_pOffSimuDlg.status=1;
		if(this->m_pCompileDlg.status==1){
			this->m_pCompileDlg.ShowWindow(SW_HIDE);
			this->m_pCompileDlg.status=2;
		}
		if(this->m_pMicroProDlg.status==1){
			this->m_pMicroProDlg.ShowWindow(SW_HIDE);
			this->m_pMicroProDlg.status=2;
		}
		if(this->m_pCrosAsmDlg.status==1){
			this->m_pCrosAsmDlg.ShowWindow(SW_HIDE);
			this->m_pCrosAsmDlg.status=2;
		}
		if(this->m_pUnAsmDlg.status==1){
			this->m_pUnAsmDlg.ShowWindow(SW_HIDE);
			this->m_pUnAsmDlg.status=2;
		}
		
	}
	else if(this->m_pOffSimuDlg.status==2){
		this->m_pOffSimuDlg.ShowWindow(SW_SHOW);
		this->m_pOffSimuDlg.status=1;
		if(this->m_pCompileDlg.status==1){
	    	this->m_pCompileDlg.ShowWindow(SW_HIDE);
	    	this->m_pCompileDlg.status=2;
		}
		if(this->m_pMicroProDlg.status==1){
	    	this->m_pMicroProDlg.ShowWindow(SW_HIDE);
	    	this->m_pMicroProDlg.status=2;
		}
		if(this->m_pCrosAsmDlg.status==1){
	    	this->m_pCrosAsmDlg.ShowWindow(SW_HIDE);
	    	this->m_pCrosAsmDlg.status=2;
		}
		if(this->m_pUnAsmDlg.status==1){
	    	this->m_pUnAsmDlg.ShowWindow(SW_HIDE);
	    	this->m_pUnAsmDlg.status=2;
		}


	}
	else{
		this->m_pOffSimuDlg.ShowWindow(SW_HIDE);
		this->m_pOffSimuDlg.status=2;
	}
	
}

void CTEC2000View::OnUpdateModeOffsimu(CCmdUI* pCmdUI) 
{
	if(this->m_pOffSimuDlg.status==1){
		pCmdUI->SetCheck(TRUE);
	}
	else if(this->m_pOffSimuDlg.status==2){
		pCmdUI->SetCheck(FALSE);
	}
	
}

void CTEC2000View::OnModeCros() 
{
	if(this->m_pCrosAsmDlg.status==0){
		this->m_pCrosAsmDlg.Create(IDD_CROSASM,this);
    	this->m_pCrosAsmDlg.ShowWindow(SW_SHOW);
     	this->m_pCrosAsmDlg.status=1;
		if(this->m_pCompileDlg.status==1){
			this->m_pCompileDlg.ShowWindow(SW_HIDE);
			this->m_pCompileDlg.status=2;
		}
		if(this->m_pMicroProDlg.status==1){
			this->m_pMicroProDlg.ShowWindow(SW_HIDE);
			this->m_pMicroProDlg.status=2;
		}
		if(this->m_pOffSimuDlg.status==1){
			this->m_pOffSimuDlg.ShowWindow(SW_HIDE);
			this->m_pOffSimuDlg.status=2;
		}
		if(this->m_pUnAsmDlg.status==1){
			this->m_pUnAsmDlg.ShowWindow(SW_HIDE);
			this->m_pUnAsmDlg.status=2;
		}

		
	}
	else if(this->m_pCrosAsmDlg.status==2){
		this->m_pCrosAsmDlg.ShowWindow(SW_SHOW);
		this->m_pCrosAsmDlg.status=1;
		if(this->m_pCompileDlg.status==1){
	    	this->m_pCompileDlg.ShowWindow(SW_HIDE);
	    	this->m_pCompileDlg.status=2;
		}
		if(this->m_pMicroProDlg.status==1){
	    	this->m_pMicroProDlg.ShowWindow(SW_HIDE);
	    	this->m_pMicroProDlg.status=2;
		}
		if(this->m_pOffSimuDlg.status==1){
	    	this->m_pOffSimuDlg.ShowWindow(SW_HIDE);
	    	this->m_pOffSimuDlg.status=2;
		}
		if(this->m_pUnAsmDlg.status==1){
	    	this->m_pUnAsmDlg.ShowWindow(SW_HIDE);
	    	this->m_pUnAsmDlg.status=2;
		}


	}
	else{
		this->m_pCrosAsmDlg.ShowWindow(SW_HIDE);
		this->m_pCrosAsmDlg.status=2;
	}
	
}

void CTEC2000View::OnUpdateModeCros(CCmdUI* pCmdUI) 
{
	if(this->m_pCrosAsmDlg.status==1){
		pCmdUI->SetCheck(TRUE);
	}
	else if(this->m_pCrosAsmDlg.status==2){
		pCmdUI->SetCheck(FALSE);
	}
}

void CTEC2000View::OnModeUnasm() 
{
	if(this->m_pUnAsmDlg.status==0){
		this->m_pUnAsmDlg.Create(IDD_UNASM,this);
    	this->m_pUnAsmDlg.ShowWindow(SW_SHOW);
     	this->m_pUnAsmDlg.status=1;

		CTEC2000App *pApp;
        pApp=(CTEC2000App *)AfxGetApp();
        CMainFrame *pFrm;
        pFrm=(CMainFrame *)pApp->GetMainWnd();
     	pFrm->m_pUnAsmDlg=&(this->m_pUnAsmDlg);

		if(this->m_pCompileDlg.status==1){
			this->m_pCompileDlg.ShowWindow(SW_HIDE);
			this->m_pCompileDlg.status=2;
		}
		if(this->m_pMicroProDlg.status==1){
			this->m_pMicroProDlg.ShowWindow(SW_HIDE);
			this->m_pMicroProDlg.status=2;
		}
		if(this->m_pOffSimuDlg.status==1){
			this->m_pOffSimuDlg.ShowWindow(SW_HIDE);
			this->m_pOffSimuDlg.status=2;
		}
		if(this->m_pCrosAsmDlg.status==1){
			this->m_pCrosAsmDlg.ShowWindow(SW_HIDE);
			this->m_pCrosAsmDlg.status=2;
		}

		
	}
	else if(this->m_pUnAsmDlg.status==2){
		this->m_pUnAsmDlg.ShowWindow(SW_SHOW);
		this->m_pUnAsmDlg.status=1;
		if(this->m_pCompileDlg.status==1){
	    	this->m_pCompileDlg.ShowWindow(SW_HIDE);
	    	this->m_pCompileDlg.status=2;
		}
		if(this->m_pMicroProDlg.status==1){
	    	this->m_pMicroProDlg.ShowWindow(SW_HIDE);
	    	this->m_pMicroProDlg.status=2;
		}
		if(this->m_pOffSimuDlg.status==1){
	    	this->m_pOffSimuDlg.ShowWindow(SW_HIDE);
	    	this->m_pOffSimuDlg.status=2;
		}
		if(this->m_pCrosAsmDlg.status==1){
	    	this->m_pCrosAsmDlg.ShowWindow(SW_HIDE);
	    	this->m_pCrosAsmDlg.status=2;
		}
		


	}
	else{
		this->m_pUnAsmDlg.ShowWindow(SW_HIDE);
		this->m_pUnAsmDlg.status=2;
	}
	
}

void CTEC2000View::OnUpdateModeUnasm(CCmdUI* pCmdUI) 
{
	if(this->m_pUnAsmDlg.status==1){
		pCmdUI->SetCheck(TRUE);
	}
	else if(this->m_pUnAsmDlg.status==2){
		pCmdUI->SetCheck(FALSE);
	}
	
}

void CTEC2000View::OnLoadcod() 
{

	m_pUnAsmDlg.Loadcod();
	
}

void CTEC2000View::OnRun() 
{
	m_pUnAsmDlg.Run();
	
}

void CTEC2000View::OnDwrun() 
{
	m_pUnAsmDlg.Dwrun();
	
}

⌨️ 快捷键说明

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