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

📄 myinsanebt.cpp

📁 类似flashget下载工具代码 本来想在完善了上传的
💻 CPP
字号:
// MyInsaneBT.cpp : Defines the class behaviors for the application.
//

#include "stdafx.h"
#include "MyInsaneBT.h"

#include "MainFrm.h"
#include "MyInsaneBTDoc.h"
#include "MyInsaneBTView.h"
#include "GetBreakDownInfo.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMyInsaneBTApp

BEGIN_MESSAGE_MAP(CMyInsaneBTApp, CWinApp)
	//{{AFX_MSG_MAP(CMyInsaneBTApp)
	ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
		// NOTE - the ClassWizard will add and remove mapping macros here.
		//    DO NOT EDIT what you see in these blocks of generated code!
	//}}AFX_MSG_MAP
	// Standard file based document commands
	ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
	ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
	// Standard print setup command
	ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMyInsaneBTApp construction

CMyInsaneBTApp::CMyInsaneBTApp() :
	CBCGPWorkspace (TRUE /* m_bResourceSmartUpdate */)
{
	// TODO: add construction code here,
	// Place all significant initialization in InitInstance
}

/////////////////////////////////////////////////////////////////////////////
// The one and only CMyInsaneBTApp object

CMyInsaneBTApp theApp;

/////////////////////////////////////////////////////////////////////////////
// CMyInsaneBTApp initialization

BOOL CMyInsaneBTApp::InitInstance()
{
	// Initialize OLE libraries
	if (!AfxOleInit())
	{
		AfxMessageBox(IDP_OLE_INIT_FAILED);
		return FALSE;
	}
    
	if(!AfxSocketInit())
	{
		::MessageBox(NULL,"Windows 通信端口初始化失败.","MyInsaneDown",MB_OK|MB_ICONSTOP);
		return FALSE;
	}
	//AllocConsole();
	AfxEnableControlContainer();

	// 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

	// 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("BCGP AppWizard-Generated Applications"));

	LoadStdProfileSettings();  // Load standard INI file options (including MRU)

	SetRegistryBase (_T("Settings"));

	// Initialize all Managers for usage. They are automatically constructed
	// if not yet present
	InitContextMenuManager();
	InitKeyboardManager();

	// 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(CMyInsaneBTDoc),
		RUNTIME_CLASS(CMainFrame),       // main SDI frame window
		RUNTIME_CLASS(CMyInsaneBTView));
	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->SetWindowText("");

    
    
	CMainFrame* pFrm = (CMainFrame*)m_pMainWnd;
	CView * pView = pFrm->GetActiveView();
    CRect rect;
	pView->GetWindowRect(&rect);
	int h = rect.Height();
	int w = rect.Width();
	if(pView->IsKindOf(RUNTIME_CLASS(CMyInsaneBTView)))
	{  
	   
	   pView->SendMessage(WM_SIZE,SIZE_RESTORED,MAKEWPARAM(w,h));
	   
	   CRect ret;
	   pFrm->m_workspace.GetWindowRect(&ret);

	   pFrm->m_outworkspace.SetWindowPos(NULL,0,0,ret.Width(),100,SWP_NOMOVE|SWP_NOACTIVATE|SWP_NOZORDER);
	   pFrm->RecalcLayout();
	   

	   //m_pMainWnd->SetWindowText("易下载V1.0");
	   CGetBreakDownInfo::Instace()->Get_CFG_Path();
	   m_pMainWnd->ShowWindow(SW_SHOW);
	   
	   m_pMainWnd->UpdateWindow();
	}


	//在C:下创建下载文件夹
    //  CString sPath = _T("c:\\MyDown");
	//  if(!DirExist(sPath.GetBuffer(0)))
	//    ::CreateDirectory(sPath,NULL);
	return TRUE;
}

/////////////////////////////////////////////////////////////////////////////
// CMyInsaneBTApp message handlers

int CMyInsaneBTApp::ExitInstance() 
{
	BCGCBProCleanUp();

	return CWinApp::ExitInstance();
}


/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About



CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	//{{AFX_DATA_INIT(CAboutDlg)
	//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAboutDlg)
	DDX_Control(pDX, IDC_COMPANY_URL, m_btnURL);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
	//{{AFX_MSG_MAP(CAboutDlg)
		// No message handlers
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

// App command to run the dialog
void CMyInsaneBTApp::OnAppAbout()
{
	CAboutDlg aboutDlg;
	aboutDlg.DoModal();
}


void CMyInsaneBTApp::PreLoadState ()
{

	GetContextMenuManager()->AddMenu (_T("My menu"), IDR_CONTEXT_MENU);

	// TODO: add another context menus here
}


/////////////////////////////////////////////////////////////////////////////
// CMyInsaneBTApp message handlers
bool CMyInsaneBTApp::DirExist(const char *pszDirName)   
{   
	  WIN32_FIND_DATA   fileinfo;   
	  char _szDir[_MAX_PATH];   
	  strcpy(_szDir,   pszDirName);   
	  int   nLen   =   strlen(_szDir);   
	  if((_szDir[nLen-1]   ==   '\\')   ||   (_szDir[nLen-1]   ==   '/')   )   
	  {   
	    	  _szDir[nLen-1]   =   '\0';   
	  }   
     
	  HANDLE hFind   =   ::FindFirstFile(_szDir,   &fileinfo);   

      if (hFind   ==   INVALID_HANDLE_VALUE)   
	  {   
          return   false;   
	  }   
	 if(fileinfo.dwFileAttributes   ==   FILE_ATTRIBUTE_DIRECTORY   )   
	 {   
		  ::FindClose(hFind);   
				  return   true;   
	 }   
		   ::FindClose(hFind);   
	return false;   
}   
    
  //   创建目录,包含子目录,可以创建多级子目录   
bool CMyInsaneBTApp::CreateDir(const char *pszDirName)   
{   
			  bool   bRet   =   false;   
			  char     _szDir[_MAX_PATH];   
			  char     _szTmp[_MAX_DIR];   
			  int     nLen   =   0;   
			  int     idx   ;   
	  if((DirExist(pszDirName)) == true )   
			  return   true;   
			  strcpy(_szDir,   pszDirName);   
			  nLen   =   strlen(_szDir);   
			  if(   _szDir[nLen-1]   ==   '\\'   ||   _szDir[nLen-1]   ==   '/'   )   
			  {   
			  _szDir[nLen-1]   =   '\0';   
			  }   
			  nLen   =   strlen(_szDir);   
			  memset(_szTmp,   0,   _MAX_DIR);   
			  char     _str[2];   
			  for(idx   =   0;   idx   <   nLen;   idx++)   
			  {   
			  if(_szDir[idx] !='\\')   
			  {   
					  _str[0]   =   _szDir[idx];   
					  _str[1]   =   0;   
					  strcat(_szTmp,   _str);   
			  }   
			  else   
			  {   
				 bRet = ::CreateDirectory(_szTmp, NULL);   
				 if(bRet)   
				 {   
				   ::SetFileAttributes(_szTmp,   FILE_ATTRIBUTE_NORMAL);   
				 }   
					_str[0]   =   _szDir[idx];   
					_str[1]   =   0;   
					strcat(_szTmp,   _str);   
			  }   
					  if(   idx   ==   nLen-1   )   
					  {   
							  bRet = ::CreateDirectory(_szTmp,   NULL);   
							  if(bRet)   
							  {   
							  ::SetFileAttributes(_szTmp,   FILE_ATTRIBUTE_NORMAL);   
							  }   
					  }   
			  }   
		   if(DirExist(_szTmp))   
			  return true;   
			  return false;
  } 

⌨️ 快捷键说明

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