MyFtpView.cpp
资源名称:FTP.rar [点击查看]
上传用户:job1860
上传日期:2021-12-04
资源大小:1510k
文件大小:5k
源码类别:
Ftp客户端
开发平台:
Visual C++
- // MyFtpView.cpp : implementation of the CMyFtpView class
- //
- #include "stdafx.h"
- #include "MyFtp.h"
- #include "MyFtpDoc.h"
- #include "MyFtpView.h"
- #include "MainFrm.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- /////////////////////////////////////////////////////////////////////////////
- // CMyFtpView
- IMPLEMENT_DYNCREATE(CMyFtpView, CView)
- BEGIN_MESSAGE_MAP(CMyFtpView, CView)
- //{{AFX_MSG_MAP(CMyFtpView)
- ON_WM_ERASEBKGND()
- ON_COMMAND(IDM_CONNECT, OnConnect)
- ON_WM_TIMER()
- //}}AFX_MSG_MAP
- // Standard printing commands
- ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
- ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
- ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
- END_MESSAGE_MAP()
- /////////////////////////////////////////////////////////////////////////////
- // CMyFtpView construction/destruction
- CMyFtpView::CMyFtpView()
- {
- // TODO: add construction code here
- m_FtpWebSite = _T("");
- m_UserName = _T("");
- m_UserPwd = _T("");
- m_pSession = NULL;
- m_pConnection = NULL;
- m_pFileFind = NULL;
- }
- CMyFtpView::~CMyFtpView()
- {
- }
- BOOL CMyFtpView::PreCreateWindow(CREATESTRUCT& cs)
- {
- // TODO: Modify the Window class or styles here by modifying
- // the CREATESTRUCT cs
- return CView::PreCreateWindow(cs);
- }
- /////////////////////////////////////////////////////////////////////////////
- // CMyFtpView drawing
- void CMyFtpView::OnDraw(CDC* pDC)
- {
- CMyFtpDoc* pDoc = GetDocument();
- ASSERT_VALID(pDoc);
- // TODO: add draw code for native data here
- }
- /////////////////////////////////////////////////////////////////////////////
- // CMyFtpView printing
- BOOL CMyFtpView::OnPreparePrinting(CPrintInfo* pInfo)
- {
- // default preparation
- return DoPreparePrinting(pInfo);
- }
- void CMyFtpView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
- {
- // TODO: add extra initialization before printing
- }
- void CMyFtpView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
- {
- // TODO: add cleanup after printing
- }
- /////////////////////////////////////////////////////////////////////////////
- // CMyFtpView diagnostics
- #ifdef _DEBUG
- void CMyFtpView::AssertValid() const
- {
- CView::AssertValid();
- }
- void CMyFtpView::Dump(CDumpContext& dc) const
- {
- CView::Dump(dc);
- }
- CMyFtpDoc* CMyFtpView::GetDocument() // non-debug version is inline
- {
- ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMyFtpDoc)));
- return (CMyFtpDoc*)m_pDocument;
- }
- #endif //_DEBUG
- /////////////////////////////////////////////////////////////////////////////
- // CMyFtpView message handlers
- BOOL CMyFtpView::OnEraseBkgnd(CDC* pDC) //用于添加背景图
- {
- // TODO: Add your message handler code here and/or call default
- CBitmap bitmap;
- bitmap.LoadBitmap(IDB_BITMAP2);
- CDC dcCompatible;
- dcCompatible.CreateCompatibleDC(pDC);
- //创建与当前DC(pDC)兼容的DC,先用dcCompatible准备图像,再将数据复制到实际DC中
- dcCompatible.SelectObject(&bitmap);
- CRect rect;
- GetClientRect(&rect);//得到目的DC客户区大小,GetClientRect(&rect);
- //得到目的DC客户区大小,
- //pDC->BitBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,SRCCOPY);//实现1:1的Copy
- BITMAP bmp;//结构体
- bitmap.GetBitmap(&bmp);
- pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,
- bmp.bmWidth,bmp.bmHeight,SRCCOPY);
- return true;
- }
- void CMyFtpView::OnConnect()
- {
- // TODO: Add your command handler code here
- //生成一个模态对话框
- if (IDOK==m_ConDlg.DoModal())
- {
- m_pConnection = NULL;
- m_pSession = NULL;
- m_FtpWebSite = m_ConDlg.m_FtpWebSite;
- m_UserName = m_ConDlg.m_UserName;
- m_UserPwd = m_ConDlg.m_UserPwd;
- m_pSession=new CInternetSession(AfxGetAppName(),
- 1,
- PRE_CONFIG_INTERNET_ACCESS);
- try
- {
- //试图建立FTP连接
- SetTimer(1,1000,NULL); //设置定时器,一秒发一次WM_TIMER
- CString str="正在连接中....";
- ((CMainFrame*)GetParent())->SetMessageText(str);
- m_pConnection=m_pSession->GetFtpConnection(m_FtpWebSite,
- m_UserName,m_UserPwd);
- }
- catch (CInternetException* e)
- {
- //错误处理
- e->Delete();
- m_pConnection=NULL;
- }
- }
- }
- void CMyFtpView::OnTimer(UINT nIDEvent)
- {
- // TODO: Add your message handler code here and/or call default
- static int time_out=1;
- time_out++;
- if (m_pConnection == NULL)
- {
- CString str="正在连接中....";
- ((CMainFrame*)GetParent())->SetMessageText(str);
- if (time_out>=60)
- {
- ((CMainFrame*)GetParent())->SetMessageText("连接超时!");
- KillTimer(1);
- MessageBox("连接超时!","超时",MB_OK);
- }
- }
- else
- {
- CString str="连接成功!";
- ((CMainFrame*)GetParent())->SetMessageText(str);
- KillTimer(1);
- //连接成功之后,不用定时器来监视连接情况
- //同时跳出操作对话框
- m_FtpDlg.m_pConnection = m_pConnection;
- //非模态对话框
- m_FtpDlg.Create(IDD_DIALOG2,this);
- m_FtpDlg.ShowWindow(SW_SHOW);
- }
- CView::OnTimer(nIDEvent);
- }