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

📄 fctranslatedlg.cpp

📁 编译原理的一个课程设计
💻 CPP
字号:
// FCTranslateDlg.cpp : implementation file
//

#include "stdafx.h"
#include "FC.h"
#include "FCTranslateDlg.h"
#include <fstream.h>

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

/////////////////////////////////////////////////////////////////////////////
// CFCTranslateDlg dialog

CFCTranslateDlg::CFCTranslateDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CFCTranslateDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CFCTranslateDlg)
	m_strObjectFile = "";
	m_bBlankLine = TRUE;
	m_bOpSpace = TRUE;
	m_strBack = "4";
	m_iBackChoice = 1;
	m_bOutPrecision = TRUE;
	m_bOutRuntime = TRUE;
	m_bExitWait = TRUE;
	//}}AFX_DATA_INIT
}

void CFCTranslateDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CFCTranslateDlg)
	DDX_Text(pDX, IDC_OBJECT_FILE, m_strObjectFile);
	DDX_Check(pDX, IDC_BLANK_LINE, m_bBlankLine);
	DDX_Check(pDX, IDC_OP_SPACE, m_bOpSpace);
	DDX_CBString(pDX, IDC_BACK, m_strBack);
	DDX_Radio(pDX, IDC_TAB_BACK, m_iBackChoice);
	DDX_Check(pDX, IDC_OUT_PRECISION, m_bOutPrecision);
	DDX_Check(pDX, IDC_OUT_RUNTIME, m_bOutRuntime);
	DDX_Check(pDX, IDC_EXIT_WAIT, m_bExitWait);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CFCTranslateDlg, CDialog)
	//{{AFX_MSG_MAP(CFCTranslateDlg)
	ON_BN_CLICKED(IDB_BROWSE, OnBrowse)
	ON_BN_CLICKED(IDC_SPACE_BACK, OnSpaceBack)
	ON_BN_CLICKED(IDC_TAB_BACK, OnTabBack)
	ON_BN_CLICKED(IDB_DEFAULT, OnDefault)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFCTranslateDlg message handlers

void CFCTranslateDlg::OnBrowse() 
{
	CFileDialog dlg(FALSE,"cpp",m_strObjectFile,
		OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
		"C++ Source File (*.cpp)|*.cpp|文本文件 (*.txt)|*.txt|任意文件 (*.*)|*.*||");
	if(dlg.DoModal()!=IDOK)
		return;
	m_strObjectFile=dlg.m_ofn.lpstrFile;
	UpdateData(FALSE);
}

void CFCTranslateDlg::OnOK() 
{
	UpdateData(TRUE);
	ofstream fout(m_strObjectFile,CFile::modeCreate|CFile::modeWrite);
	if(!fout)
	{
		MessageBox("无法创建或打开 "+m_strObjectFile+" !",
			"FC 2.2",MB_OK|MB_ICONEXCLAMATION);
		return;
	}
	fout.close();
	for(int i=m_strBack.GetLength()-1;i>=0;i--)
		if(m_strBack[i]<'0' || m_strBack[i]>'9')
			break;
	if(i>=0)
	{
		MessageBox("请填入正确的“缩进”!","FC 2.2",MB_OK|MB_ICONEXCLAMATION);
		return;
	}
	CDialog::OnOK();
}

void CFCTranslateDlg::OnSpaceBack() 
{
	UpdateData(TRUE);
	GetDlgItem(IDC_BACK)->EnableWindow(m_iBackChoice==1);
}

void CFCTranslateDlg::OnTabBack() 
{
	UpdateData(TRUE);
	GetDlgItem(IDC_BACK)->EnableWindow(m_iBackChoice==1);
}

BOOL CFCTranslateDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	GetDlgItem(IDC_BACK)->EnableWindow(m_iBackChoice==1);
	return TRUE;
}

void CFCTranslateDlg::OnDefault() 
{
	UpdateData(TRUE);
	m_bBlankLine = TRUE;
	m_bOpSpace = FALSE;
	m_strBack = "4";
	m_iBackChoice = 0;
	m_bOutPrecision = FALSE;
	m_bOutRuntime = FALSE;
	m_bExitWait = TRUE;
	GetDlgItem(IDC_BACK)->EnableWindow(FALSE);
	UpdateData(FALSE);
}

⌨️ 快捷键说明

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