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

📄 ftpwanderer.cpp

📁 FTP客户端
💻 CPP
字号:
/****************************************************************/
/*																*/
/*  FtpWanderer.cpp												*/
/*																*/
/*  Defines the class behaviors for the application.			*/
/*																*/
/*  Programmed by Pablo van der Meer							*/
/*  Copyright Pablo Software Solutions 2002						*/
/*	http://www.pablovandermeer.nl								*/
/*																*/
/*  Last updated: 15 may 2002									*/
/*																*/
/****************************************************************/


#include "stdafx.h"
#include "FtpWanderer.h"
#include <afxadv.h>
#include "MainFrm.h"
#include "FtpWandererDoc.h"
#include "FtpTreeView.h"
#include "AboutDlg.h"

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


BEGIN_MESSAGE_MAP(CFtpWandererApp, CWinApp)
	//{{AFX_MSG_MAP(CFtpWandererApp)
	ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
	ON_COMMAND(ID_HELP_INDEX, OnHelpIndex)
	//}}AFX_MSG_MAP
	// Standard file based document commands
	ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
	ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFtpWandererApp construction

CFtpWandererApp::CFtpWandererApp()
{
	// TODO: add construction code here,
	// Place all significant initialization in InitInstance
}

/////////////////////////////////////////////////////////////////////////////
// The one and only CFtpWandererApp object

CFtpWandererApp theApp;


/********************************************************************/
/*																	*/
/* Function name : InitInstance										*/
/* Description   : CFtpWandererApp initialization.					*/
/*																	*/
/********************************************************************/
BOOL CFtpWandererApp::InitInstance()
{
	if (!AfxSocketInit())
	{
		AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
		return FALSE;
	}

	// Standard initialization
	// If you are not using these features and wish to reduce the size
	//  of your final executable, you should remove from the following
	//  the specific initialization routines you do not need.

#ifdef _AFXDLL
	Enable3dControls();			// Call this when using MFC in a shared DLL
#else
	Enable3dControlsStatic();	// Call this when linking to MFC statically
#endif

	InitCommonControls();

	// Change the registry key under which our settings are stored.
	// TODO: You should modify this string to be something appropriate
	// such as the name of your company or organization.
	SetRegistryKey(_T("Pablo Software Solutions"));

	LoadStdProfileSettings();  // Load standard INI file options (including MRU)
	FixList();
	// Register the application's document templates.  Document templates
	//  serve as the connection between documents, frame windows and views.

	CSingleDocTemplate* pDocTemplate;
	pDocTemplate = new CSingleDocTemplate(
		IDR_MAINFRAME,
		RUNTIME_CLASS(CFtpWandererDoc),
		RUNTIME_CLASS(CMainFrame),       // main SDI frame window
		RUNTIME_CLASS(CFtpTreeView));
	AddDocTemplate(pDocTemplate);

	// Parse command line for standard shell commands, DDE, file open
	CCommandLineInfo cmdInfo;
	ParseCommandLine(cmdInfo);

	// Dispatch commands specified on the command line
	if (!ProcessShellCommand(cmdInfo))
		return FALSE;

	// The one and only window has been initialized, so show and update it.
	m_pMainWnd->ShowWindow(SW_SHOW);
	m_pMainWnd->UpdateWindow();

	return TRUE;
}


/********************************************************************/
/*																	*/
/* Function name : OnAppAbout										*/
/* Description   : App command to run the dialog.					*/
/*																	*/
/********************************************************************/
void CFtpWandererApp::OnAppAbout()
{
	CAboutDlg dlg;
	dlg.DoModal();
}


/********************************************************************/
/*																	*/
/* Function name : FixList											*/
/* Description   : Make sure no path names are shown.				*/
/*																	*/
/********************************************************************/
void CFtpWandererApp::FixList()
{
	ASSERT(m_pRecentFileList->m_arrNames != NULL);
	for (int iMRU = 0; iMRU < m_pRecentFileList->m_nSize; iMRU++)
	{
		int nPos = m_pRecentFileList->m_arrNames[iMRU].ReverseFind('\\');
		if (nPos != -1)
		{
			m_pRecentFileList->m_arrNames[iMRU] = m_pRecentFileList->m_arrNames[iMRU].Mid(nPos+1);
		}
	}
}


/********************************************************************/
/*																	*/
/* Function name : AddToRecentFileList								*/
/* Description   : Virtual override which strips path form string.	*/
/*																	*/
/********************************************************************/
void CFtpWandererApp::AddToRecentFileList(LPCTSTR lpszPathName) 
{
	ASSERT_VALID(this);
	ASSERT(lpszPathName != NULL);
	ASSERT(AfxIsValidString(lpszPathName));

	CString strPathName = lpszPathName;

	// strip 'bogus' path
	int nPos = strPathName.ReverseFind('\\');
	if (nPos != -1)
		strPathName = strPathName.Mid(nPos + 1);

	if (m_pRecentFileList != NULL)
	{
		ASSERT(m_pRecentFileList->m_arrNames != NULL);

		// update the MRU list, if an existing MRU string matches file name
		for (int iMRU = 0; iMRU < m_pRecentFileList->m_nSize-1; iMRU++)
		{
			if (m_pRecentFileList->m_arrNames[iMRU].CompareNoCase(strPathName) == 0)
				break;      // iMRU will point to matching entry
		}
		// move MRU strings before this one down
		for (; iMRU > 0; iMRU--)
		{
			ASSERT(iMRU > 0);
			ASSERT(iMRU < m_pRecentFileList->m_nSize);
			m_pRecentFileList->m_arrNames[iMRU] = m_pRecentFileList->m_arrNames[iMRU-1];
		}
		// place this one at the beginning
		m_pRecentFileList->m_arrNames[0] = strPathName;
	}
}


/********************************************************************/
/*																	*/
/* Function name : OnHelpIndex										*/
/* Description   : Command to show help file.						*/
/*																	*/
/********************************************************************/
void CFtpWandererApp::OnHelpIndex() 
{
	// launch help
	::WinHelp(AfxGetMainWnd()->m_hWnd, AfxGetApp()->m_pszHelpFilePath, HELP_CONTENTS, 0L);	
}

⌨️ 快捷键说明

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