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

📄 projectnamepage.cpp

📁 把doc文档转成pdf后刻录成CD,用VC++开发,用了Nero的SDK和CXIMAGE的D
💻 CPP
字号:
// ProjectNamePage.cpp : implementation file
//

#include "stdafx.h"
#include "Scan2PDF.h"
#include "ProjectNamePage.h"

#include "Scan2PDFDefs.h"

#include <fstream>

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

/////////////////////////////////////////////////////////////////////////////
// CProjectNamePage property page

IMPLEMENT_DYNCREATE(CProjectNamePage, CPropertyPageEx)

CProjectNamePage::CProjectNamePage() : CPropertyPageEx(CProjectNamePage::IDD, 0, 
										IDS_PROJECT_HEADER, IDS_PROJECT_SUBHEADER)
{
	//{{AFX_DATA_INIT(CProjectNamePage)
	m_ProjectName = _T("");
	//}}AFX_DATA_INIT
}

CProjectNamePage::~CProjectNamePage()
{
}

void CProjectNamePage::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPageEx::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CProjectNamePage)
	DDX_Control(pDX, IDC_PROJECT_NAME_COMBO, m_Projects);
	DDX_Text(pDX, IDC_PROJECT_NAME, m_ProjectName);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CProjectNamePage, CPropertyPageEx)
	//{{AFX_MSG_MAP(CProjectNamePage)
	ON_EN_CHANGE(IDC_PROJECT_NAME, OnChangeProjectName)
	ON_CBN_EDITCHANGE(IDC_PROJECT_NAME_COMBO, OnEditChangeProjectNameCombo)
	ON_CBN_SELCHANGE(IDC_PROJECT_NAME_COMBO, OnSelChangeProjectNameCombo)
	ON_CBN_CLOSEUP(IDC_PROJECT_NAME_COMBO, OnCloseupProjectNameCombo)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CProjectNamePage message handlers

BOOL CProjectNamePage::OnSetActive() 
{
	CPropertySheetEx* pParent=(CPropertySheetEx*) GetParent();
	
	CString szProjectName;
	m_Projects.GetWindowText(szProjectName);

	UpdateData(TRUE);
	//if (m_ProjectName.IsEmpty())
	if (szProjectName.IsEmpty())
		pParent->SetWizardButtons(PSWIZB_BACK);
	else
		pParent->SetWizardButtons(PSWIZB_BACK | PSWIZB_NEXT);
	
	return CPropertyPageEx::OnSetActive();
}


LRESULT CProjectNamePage::OnWizardNext() 
{
	UpdateData(TRUE);

	CString szProjectName;
	m_Projects.GetWindowText(szProjectName);

	if (szProjectName.GetLength()>10)
	{
		AfxMessageBox("The length of project name exceeds the limit of 10 characters.\n"
				"Please correct the project name.", MB_ICONERROR);
		return -1;
	}

	//theConf.m_ProjectName=m_ProjectName;
	theConf.m_ProjectName=szProjectName;
	
	//check for file
	CString szProjectFile;
	szProjectFile.Format("%s.prj", szProjectName.GetBuffer(0));

	ifstream MyFile;
	MyFile.open(szProjectFile);
	if (!MyFile.fail())
	{
		int iResult=AfxMessageBox("The project already exist.\n"
			"Do you want to add new PDF to this project?", MB_YESNO | MB_ICONINFORMATION);
		
		if (iResult==IDNO)
			return -1; 
		
		//if yes ->  use the old project file
		char TempProjectSize[256], TempPDFFileName[256];
		MyFile.getline(TempProjectSize, 256);
		DWORD dwSize=atol(TempProjectSize);
		theConf.m_ProjectSize=dwSize;

		while (!MyFile.eof())
		{
			MyFile.getline(TempPDFFileName, 256);
			CString szTmp=TempPDFFileName;
			szTmp.TrimLeft();
			szTmp.TrimRight();
			if (!szTmp.IsEmpty())
				theConf.m_PDFs.push_back(szTmp);
		}
		
		MyFile.close();
	}
	else
	{
		theConf.m_ProjectSize=0;
	}

	/*
	FILE* fp=fopen(szProjectFile.GetBuffer(0), "rt");
	if (fp!=NULL)	//file exist
	{
		DWORD dwSize;
		fscanf(fp, "%d", &dwSize);
		theConf.m_ProjectSize=dwSize;
		fclose(fp);

		
	}
	else
	{
		theConf.m_ProjectSize=0;
	}
	*/

	//create directory
	CreateDirectory(szProjectName, NULL);
	
	return CPropertyPageEx::OnWizardNext();
}

void CProjectNamePage::OnChangeProjectName() 
{
	UpdateData(TRUE);

	CPropertySheetEx* pParent=(CPropertySheetEx*) GetParent();

	if (m_ProjectName.IsEmpty())
		pParent->SetWizardButtons(PSWIZB_BACK);
	else
		pParent->SetWizardButtons(PSWIZB_BACK | PSWIZB_NEXT);
}

BOOL CProjectNamePage::OnInitDialog() 
{
	CPropertyPageEx::OnInitDialog();
	
	//Enumerate Projects
	EnumProjects();
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CProjectNamePage::EnumProjects()
{
	WIN32_FIND_DATA FileData;
	HANDLE hSearch = FindFirstFile("*.prj", &FileData); 
	if (hSearch == INVALID_HANDLE_VALUE) 
	{ 
		return;
	} 
	
	BOOL fFinished = FALSE;
	while (!fFinished) 
	{ 
		CString projectname=FileData.cFileName;
		projectname.Replace(".prj", "");
		m_Projects.AddString(projectname);
		
		if (!FindNextFile(hSearch, &FileData)) 
		{
			if (GetLastError() == ERROR_NO_MORE_FILES) 
				fFinished = TRUE; 
			else 
				return;
		}
	} 
	
	// Close the search handle. 
	FindClose(hSearch);	
}

void CProjectNamePage::OnEditChangeProjectNameCombo() 
{
	CString szProjectName;
	m_Projects.GetWindowText(szProjectName);

	UpdateData(TRUE);

	CPropertySheetEx* pParent=(CPropertySheetEx*) GetParent();

	if (szProjectName.IsEmpty())
		pParent->SetWizardButtons(PSWIZB_BACK);
	else
		pParent->SetWizardButtons(PSWIZB_BACK | PSWIZB_NEXT);

}

void CProjectNamePage::OnSelChangeProjectNameCombo() 
{
	OnEditChangeProjectNameCombo();	
}

void CProjectNamePage::OnCloseupProjectNameCombo() 
{
	OnEditChangeProjectNameCombo();	
}

⌨️ 快捷键说明

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