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

📄 input.cpp

📁 用VC实现的模拟指令发射流程的计分排算法实现
💻 CPP
字号:
// input.cpp : implementation file
//

#include "stdafx.h"
#include "scoreboard.h"
#include "input.h"
#include "ScoreBoardDlg.h"
//#include "ScoreBoardDlg.cpp"
#include "myfile.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

extern Instruction INS[101]; //
extern INT INDEX;//申明了一个外部变量

/////////////////////////////////////////////////////////////////////////////
// Cinput dialog


Cinput::Cinput(CWnd* pParent /*=NULL*/)
	: CDialog(Cinput::IDD, pParent)
{
	//{{AFX_DATA_INIT(Cinput)
	m_op = _T("");
	m_des = _T("");
	m_sj = _T("");
	m_sk = _T("");
	//}}AFX_DATA_INIT
}


void Cinput::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(Cinput)
	DDX_Control(pDX, IDC_LIST1, m_list_input);
	DDX_CBString(pDX, IDC_COMBO2, m_op);
	DDX_CBString(pDX, IDC_COMBO3, m_des);
	DDX_CBString(pDX, IDC_COMBO4, m_sj);
	DDX_CBString(pDX, IDC_COMBO5, m_sk);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(Cinput, CDialog)
	//{{AFX_MSG_MAP(Cinput)
	ON_BN_CLICKED(IDC_BUTTON1, OnAdd)
	ON_WM_CTLCOLOR()
	ON_BN_CLICKED(IDC_CLEAR, OnClear)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Cinput message handlers

BOOL Cinput::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
		// TODO: Add extra initialization here
	////初始化输入的指令表
	((CComboBox*)GetDlgItem(IDC_COMBO1))->AddString("LD  ");
	((CComboBox*)GetDlgItem(IDC_COMBO1))->AddString("ADD ");
	((CComboBox*)GetDlgItem(IDC_COMBO1))->AddString("SUB ");
	((CComboBox*)GetDlgItem(IDC_COMBO1))->AddString("MULT");
    ((CComboBox*)GetDlgItem(IDC_COMBO1))->AddString("DIV ");
	((CComboBox*)GetDlgItem(IDC_COMBO1))->SetCurSel(0);
    

    ((CComboBox*)GetDlgItem(IDC_COMBO2))->AddString("F0");
	((CComboBox*)GetDlgItem(IDC_COMBO2))->AddString("F1");
	((CComboBox*)GetDlgItem(IDC_COMBO2))->AddString("F2");
	((CComboBox*)GetDlgItem(IDC_COMBO2))->AddString("F3");
	((CComboBox*)GetDlgItem(IDC_COMBO2))->AddString("F4");
	((CComboBox*)GetDlgItem(IDC_COMBO2))->AddString("F5");
	((CComboBox*)GetDlgItem(IDC_COMBO2))->AddString("F6");
	((CComboBox*)GetDlgItem(IDC_COMBO2))->AddString("F7");
 
	((CComboBox*)GetDlgItem(IDC_COMBO2))->SetCurSel(0);

	((CComboBox*)GetDlgItem(IDC_COMBO3))->AddString("F0");
	((CComboBox*)GetDlgItem(IDC_COMBO3))->AddString("F1");
	((CComboBox*)GetDlgItem(IDC_COMBO3))->AddString("F2");
	((CComboBox*)GetDlgItem(IDC_COMBO3))->AddString("F3");
	((CComboBox*)GetDlgItem(IDC_COMBO3))->AddString("F4");
	((CComboBox*)GetDlgItem(IDC_COMBO3))->AddString("F5");
	((CComboBox*)GetDlgItem(IDC_COMBO3))->AddString("F6");
	((CComboBox*)GetDlgItem(IDC_COMBO3))->AddString("F7");

    ((CComboBox*)GetDlgItem(IDC_COMBO3))->SetCurSel(2);

	((CComboBox*)GetDlgItem(IDC_COMBO4))->AddString("F0");
	((CComboBox*)GetDlgItem(IDC_COMBO4))->AddString("F1");
	((CComboBox*)GetDlgItem(IDC_COMBO4))->AddString("F2");
	((CComboBox*)GetDlgItem(IDC_COMBO4))->AddString("F3");
	((CComboBox*)GetDlgItem(IDC_COMBO4))->AddString("F4");
	((CComboBox*)GetDlgItem(IDC_COMBO4))->AddString("F5");
	((CComboBox*)GetDlgItem(IDC_COMBO4))->AddString("F6");
	((CComboBox*)GetDlgItem(IDC_COMBO4))->AddString("F7");
	((CComboBox*)GetDlgItem(IDC_COMBO4))->AddString("");
    ((CComboBox*)GetDlgItem(IDC_COMBO4))->SetCurSel(4);
    

////初始化指令表完成


	m_list_input.InsertColumn(0,"序号",LVCFMT_CENTER,50);
	m_list_input.InsertColumn(1,"指令",LVCFMT_LEFT,50);
	m_list_input.InsertColumn(2,"目的",LVCFMT_CENTER,50);
	m_list_input.InsertColumn(3,"源J",LVCFMT_CENTER,50);
	m_list_input.InsertColumn(4,"源K",LVCFMT_CENTER,50);
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void Cinput::OnAdd() 
{
	// TODO: Add your control notification handler code here

	if(INDEX>=101)
	{
		MessageBox("不好意思目前只支持一次输入100条指令","输入错误");
	}
	
	else
	{	
	char sss[3];
	int addi;
	addi=((CComboBox*)GetDlgItem(IDC_COMBO1))->GetCurSel();
	((CComboBox*)GetDlgItem(IDC_COMBO1))->GetLBText(addi,INS[INDEX].OP);

	addi=((CComboBox*)GetDlgItem(IDC_COMBO2))->GetCurSel();
	((CComboBox*)GetDlgItem(IDC_COMBO2))->GetLBText(addi,INS[INDEX].DES);
	
     addi=((CComboBox*)GetDlgItem(IDC_COMBO3))->GetCurSel();
	((CComboBox*)GetDlgItem(IDC_COMBO3))->GetLBText(addi,INS[INDEX].RESJ);
	
	addi=((CComboBox*)GetDlgItem(IDC_COMBO4))->GetCurSel();
	((CComboBox*)GetDlgItem(IDC_COMBO4))->GetLBText(addi,INS[INDEX].RESK);
	

     m_list_input.InsertItem((INDEX-1),::itoa(INDEX,sss,10));
      m_list_input.SetItemText((INDEX-1),1,INS[INDEX].OP);
      m_list_input.SetItemText((INDEX-1),2,INS[INDEX].DES);
      m_list_input.SetItemText((INDEX-1),3,INS[INDEX].RESJ);
	  m_list_input.SetItemText((INDEX-1),4,INS[INDEX].RESK);
     
     INDEX++;
	}

	// TODO: Add your control notification handler code here
	

}

void Cinput::OnClear() 
{
	// TODO: Add your control notification handler code here
	m_list_input.DeleteAllItems();
for (int m=1;m<INDEX;m++)
{
	INS[m].OP="";
    INS[m].DES="";
    INS[m].RESJ="";
	INS[m].RESK="";
    INS[m].Status=0;
}
INDEX=1;	// TODO: Add your control notification handler code here
}

HBRUSH Cinput::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
	
	// TODO: Change any attributes of the DC here
		// TODO: Change any attributes of the DC here
	if(nCtlColor==CTLCOLOR_LISTBOX)
	{
		//pDC->SetBkMode(TRANSPARENT);
		pDC->SetTextColor(RGB(255,0,0));
		pDC->SetBkColor(RGB(233,233,220));
		HBRUSH b=CreateSolidBrush(RGB(255,233,220));
		return b;
	}
	else if(nCtlColor==CTLCOLOR_SCROLLBAR)
	{
		//pDC->SetBkMode(TRANSPARENT);
		pDC->SetTextColor(RGB(0,0,0));
		pDC->SetBkColor(RGB(233,233,220));
		HBRUSH b=CreateSolidBrush(RGB(233,233,220));
		return b;
	}
	else if(nCtlColor==CTLCOLOR_EDIT)
	{
		//pDC->SetBkMode(TRANSPARENT);
		pDC->SetTextColor(RGB(255,0,0));
		pDC->SetBkColor(RGB(233,233,220));
		HBRUSH b=CreateSolidBrush(RGB(255,233,220));
		return b;
	}
	else if(nCtlColor==CTLCOLOR_STATIC)
	{
		pDC->SetTextColor(RGB(0,0,0));
		pDC->SetBkColor(RGB(160,180,220));
		HBRUSH b=CreateSolidBrush(RGB(160,180,220));
        // HBRUSH b=CreateSolidBrush(YELLOW);
		return b;
	}
	else if(nCtlColor==CTLCOLOR_DLG)
	{
		pDC->SetTextColor(RGB(0,0,0));
		pDC->SetBkColor(RGB(160,180,220));
		HBRUSH b=CreateSolidBrush(RGB(160,180,220));
		return b;
	}	

	// TODO: Return a different brush if the default is not desired
	
	// TODO: Return a different brush if the default is not desired
	return hbr;
}

void Cinput::OnOK() 
{
	// TODO: Add extra validation here
	if(MessageBox("确定此代码设置?","温馨提示",MB_OKCANCEL|MB_ICONQUESTION)==IDOK)
	CDialog::OnOK();
}

void Cinput::OnOK() 
{
	// TODO: Add extra validation here
	
	CDialog::OnOK();
}

void Cinput::OnClear() 
{
	// TODO: Add your control notification handler code here
	
}

⌨️ 快捷键说明

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