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

📄 execinstctrl.h

📁 一个牛人做的MIPS模拟器
💻 H
字号:
#if !defined(AFX_EXECINSTCTRL_H__EF7DE60E_53D7_43EF_8546_6158313058E2__INCLUDED_)
#define AFX_EXECINSTCTRL_H__EF7DE60E_53D7_43EF_8546_6158313058E2__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// ExecInstCtrl.h : header file
//

#include <afxtempl.h>
#include "MIPSSimulator.h"

/////////////////////////////////////////////////////////////////////////////
// CExecInstCtrl window

class CExecInstCtrl : public CWnd
{
// Construction
public:
	CExecInstCtrl();
	virtual ~CExecInstCtrl();

// Attributes
public:
	CWnd*		m_pParentWnd;

	CDC			memDC;
	CFont*		m_pOldFont;
	CBitmap*	m_pOldBitmap;
	CBitmap*	m_pBitmap;

	CRect		rcClient;
	CSize		image_size;
	int			scrollbar_width;
	int			x_offset;
	int			y_offset;

	COLORREF	m_BkColor;
	COLORREF	defaultTextBkColor;
	COLORREF	defaultTextFgColor;

	typedef struct {
		COLORREF m_TextBkColor;
		COLORREF m_TextFgColor;
		int		 row;
		int      col;
		CString  szText;
	} ITEM;
	typedef struct {
		CList<ITEM, ITEM&> m_itemList;
		int			m_nAddress;
		UINT		m_nStartCycle;
	} ITEM_ROW;
	CList<ITEM_ROW*, ITEM_ROW*> m_rowList;

	UINT	m_nMaxRow;
	UINT	m_nMaxCol;
	UINT	m_nStartCycle;
	UINT	m_nCurCycle;
	UINT_ARRAY addressArray;// store addresses of completed instructions
	BOOL    m_bInstComplete;
	BOOL	m_bIdleInstComplete;

	UINT	m_nFixRowHeight;
	UINT	m_nRowHeight;
	UINT	m_nFixColWidth;
	UINT	m_nColWidth;

	enum {
		kNone, kRun, kComplete
	} m_nState;

// Operations
public:
	void NextCycle( BOOL bRedraw = TRUE );

	void Reset();
	void ResetAndUpdate();

	BOOL SetBackColor(COLORREF color);
	BOOL SetFont(CFont* pFont, BOOL bRedraw = TRUE);

	void AddExecInst( int address, COLORREF textColor,
		CString& instString, int StartCycle, UINT_ARRAY& StageArray );
	void RemoveExecInst( int address );

	void AdjustFixRow();
	void AdjustClientArea();

	BOOL GetItem( int row, int col, ITEM& outItem );

	void DrawItem( int row, int col, BOOL TextOnly = TRUE, BOOL invalid = TRUE );
	void DrawRow( int row, BOOL TextOnly = TRUE, BOOL invalid = TRUE );
	void DrawCol( int col, BOOL TextOnly = TRUE, BOOL invalid = TRUE );
	void DrawAll( BOOL invalid = TRUE );
	void ShadeCol();

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CExecInstCtrl)
	public:
	virtual BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd);
	//}}AFX_VIRTUAL

	// Generated message map functions
protected:
	//{{AFX_MSG(CExecInstCtrl)
	afx_msg void OnPaint();
	afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
	afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_EXECINSTCTRL_H__EF7DE60E_53D7_43EF_8546_6158313058E2__INCLUDED_)

⌨️ 快捷键说明

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