QuickFTP.cpp
上传用户:tjfeida
上传日期:2013-03-10
资源大小:1917k
文件大小:8k
源码类别:

Ftp客户端

开发平台:

Visual C++

  1. // QuickFTP.cpp : Defines the class behaviors for the application.
  2. //
  3. /*********************************************
  4. **该文件是属于WolfFTP工程中的。如果有什么问题
  5. **请联系
  6. **         tablejiang@21cn.com
  7. **或者访问
  8. **         http://wolfftp.51.net
  9. **以得到最新的支持。
  10. *********************************************/
  11. #include "stdafx.h"
  12. #include "QuickFTP.h"
  13. #include "MainFrm.h"
  14. #include "QuickFTPDoc.h"
  15. #include "QuickFTPView.h"
  16. #include "TransmitFileDlg.h"
  17. #include "Verinfo.h"
  18. #ifdef _DEBUG
  19. #define new DEBUG_NEW
  20. #undef THIS_FILE
  21. static char THIS_FILE[] = __FILE__;
  22. #endif
  23. /////////////////////////////////////////////////////////////////////////////
  24. // CQuickFTPApp
  25. BEGIN_MESSAGE_MAP(CQuickFTPApp, CWinApp)
  26. //{{AFX_MSG_MAP(CQuickFTPApp)
  27. ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
  28. // NOTE - the ClassWizard will add and remove mapping macros here.
  29. //    DO NOT EDIT what you see in these blocks of generated code!
  30. //}}AFX_MSG_MAP
  31. // Standard file based document commands
  32. ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
  33. ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
  34. // Standard print setup command
  35. ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)
  36. END_MESSAGE_MAP()
  37. /////////////////////////////////////////////////////////////////////////////
  38. // CQuickFTPApp construction
  39. CQuickFTPApp::CQuickFTPApp()
  40. {
  41. // TODO: add construction code here,
  42. // Place all significant initialization in InitInstance
  43. }
  44. /////////////////////////////////////////////////////////////////////////////
  45. // The one and only CQuickFTPApp object
  46. CQuickFTPApp theApp;
  47. /////////////////////////////////////////////////////////////////////////////
  48. // CQuickFTPApp initialization
  49. BOOL CQuickFTPApp::InitInstance()
  50. {
  51. //run welcome windows .
  52. //m_WelDlg.Create( IDD_DIALOG_WELCOME ) ;
  53. //m_WelDlg.ShowWindow( SW_SHOW ) ;
  54. AfxEnableControlContainer();
  55. // Standard initialization
  56. // If you are not using these features and wish to reduce the size
  57. // of your final executable, you should remove from the following
  58. // the specific initialization routines you do not need.
  59. #ifdef _AFXDLL
  60. Enable3dControls(); // Call this when using MFC in a shared DLL
  61. #else
  62. Enable3dControlsStatic(); // Call this when linking to MFC statically
  63. #endif
  64. // Change the registry key under which our settings are stored.
  65. // TODO: You should modify this string to be something appropriate
  66. // such as the name of your company or organization.
  67. SetRegistryKey(_T("Local AppWizard-Generated Applications"));
  68. LoadStdProfileSettings();  // Load standard INI file options (including MRU)
  69. // Register the application's document templates.  Document templates
  70. //  serve as the connection between documents, frame windows and views.
  71. CSingleDocTemplate* pDocTemplate;
  72. pDocTemplate = new CSingleDocTemplate(
  73. IDR_MAINFRAME,
  74. RUNTIME_CLASS(CQuickFTPDoc),
  75. RUNTIME_CLASS(CMainFrame),       // main SDI frame window
  76. RUNTIME_CLASS(CQuickFTPView));
  77. AddDocTemplate(pDocTemplate);
  78. // Parse command line for standard shell commands, DDE, file open
  79. CCommandLineInfo cmdInfo;
  80. ParseCommandLine(cmdInfo);
  81. // Dispatch commands specified on the command line
  82. if (!ProcessShellCommand(cmdInfo))
  83. return FALSE;
  84. // The one and only window has been initialized, so show and update it.
  85. //cancel by table: execute this code in CMainFrame::OnCreate() function .
  86. /*
  87. m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
  88. m_pMainWnd->UpdateWindow();
  89. m_FileTransmitDlg.Create( IDD_DIALOG_MULTI , NULL ) ;
  90. m_FileTransmitDlg.ShowWindow( SW_SHOW ) ;
  91. CMainFrame * pMainWnd = ( CMainFrame * )m_pMainWnd ;
  92. pMainWnd->m_pJobListDlg = &m_FileTransmitDlg ;
  93. */
  94. //load accelerators .
  95. ::LoadAccelerators( m_hInstance , MAKEINTRESOURCE( IDR_MAINFRAME ) ) ;
  96. //set window text .
  97. char szVer[MAX_PATH] ;
  98. LoadString( NULL , IDS_STRING61447_VERSION , szVer , MAX_PATH ) ;
  99. ::SetWindowText( m_pMainWnd->m_hWnd , szVer ) ;
  100. return TRUE;
  101. }
  102. CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
  103. {
  104. //{{AFX_DATA_INIT(CAboutDlg)
  105. m_DisplayStr = _T("") ;
  106. m_DisplayStr = DebugInfo ;
  107. //}}AFX_DATA_INIT
  108. //m_Brush = ::CreateSolidBrush( DLG_BK_HBRUSH );
  109. m_IsHand = 0 ;
  110. }
  111. void CAboutDlg::DoDataExchange(CDataExchange* pDX)
  112. {
  113. CDialog::DoDataExchange(pDX);
  114. //{{AFX_DATA_MAP(CAboutDlg)
  115. DDX_Text(pDX, IDC_EDIT_MESSAGE, m_DisplayStr);
  116. //}}AFX_DATA_MAP
  117. }
  118. BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
  119. //{{AFX_MSG_MAP(CAboutDlg)
  120. ON_WM_LBUTTONDOWN()
  121. ON_WM_MOUSEMOVE()
  122. ON_WM_PAINT()
  123. ON_WM_CTLCOLOR()
  124. //}}AFX_MSG_MAP
  125. END_MESSAGE_MAP()
  126. // App command to run the dialog
  127. void CQuickFTPApp::OnAppAbout()
  128. {
  129. CAboutDlg aboutDlg;
  130. aboutDlg.DoModal();
  131. }
  132. /////////////////////////////////////////////////////////////////////////////
  133. // CQuickFTPApp message handlers
  134. void CAboutDlg::OnLButtonDown(UINT nFlags, CPoint point) 
  135. {
  136. // TODO: Add your message handler code here and/or call default
  137. //if user click the rectangle , popup the mail dialog.
  138. if( PtInRect( &m_MailRect , point ) )
  139. ::ShellExecute( NULL , "open","MailTo:tablejiang@sina.com",NULL,NULL,SW_SHOWNORMAL);
  140. //is user click web recttangle.
  141. if( PtInRect( &m_WebRect , point ) )
  142. ::ShellExecute( NULL , "open" , "http://wolfftp.51.net" , NULL , NULL , SW_SHOWNORMAL ) ;
  143. CDialog::OnLButtonDown(nFlags, point);
  144. }
  145. void CAboutDlg::OnMouseMove(UINT nFlags, CPoint point) 
  146. {
  147. // TODO: Add your message handler code here and/or call default
  148. //if( m_IsHand == 1 )
  149. ::SetCursor( m_hArrow ) ;
  150. CClientDC dc(this ) ;
  151. dc.SetBkMode( TRANSPARENT ) ;
  152. dc.SetTextColor( RGB( 0 , 0,0 ) ) ;
  153. dc.TextOut( m_MailRect.left , m_MailRect.top , "联系作者" ) ;
  154. dc.TextOut( m_WebRect.left , m_WebRect.top , "下载最新版本" ) ;
  155. m_IsHand = 0 ;
  156. //is mouse move on mail rectangle ?
  157. if( PtInRect( &m_MailRect , point ) )
  158. {
  159. //if( m_IsHand == 0 )
  160. ::SetCursor( m_hHand ) ;
  161. CClientDC dc(this ) ;
  162. dc.SetBkMode( TRANSPARENT ) ;
  163. dc.SetTextColor( RGB( 0, 0 , 255 ) ) ;
  164. dc.TextOut( m_MailRect.left , m_MailRect.top , "联系作者" ) ;
  165. m_IsHand = 1 ;
  166. }
  167. if( PtInRect( &m_WebRect , point ) )
  168. {
  169. //if( m_IsHand == 0 )
  170. ::SetCursor( m_hHand ) ;
  171. CClientDC dc(this ) ;
  172. dc.SetBkMode( TRANSPARENT ) ;
  173. dc.SetTextColor( RGB( 0, 0 , 255 ) ) ;
  174. dc.TextOut( m_WebRect.left , m_WebRect.top , "下载最新版本" ) ;
  175. m_IsHand = 1 ;
  176. }
  177. CDialog::OnMouseMove(nFlags, point);
  178. }
  179. BOOL CAboutDlg::OnInitDialog() 
  180. {
  181. CDialog::OnInitDialog();
  182. // TODO: Add extra initialization here
  183. m_hArrow = ::AfxGetApp()->LoadCursor( IDC_MYARROW ) ;
  184. m_hHand  = ::AfxGetApp()->LoadCursor( IDC_MYHAND ) ;
  185. //set mail rectangle .
  186. GetClientRect( &m_MailRect ) ;
  187. m_MailRect.top = m_MailRect.bottom - 40 ;
  188. m_MailRect.left = 30 ;
  189. m_MailRect.right = 230 ;
  190. m_MailRect.bottom = m_MailRect.top + 20 ;
  191. m_WebRect.top = m_MailRect.bottom ;
  192. m_WebRect.left = 30 ;
  193. m_WebRect.right = 230 ;
  194. m_WebRect.bottom = m_WebRect.top + 20 ;
  195. return TRUE;  // return TRUE unless you set the focus to a control
  196.               // EXCEPTION: OCX Property Pages should return FALSE
  197. }
  198. void CAboutDlg::OnPaint()
  199. {
  200. CPaintDC dc(this); // device context for painting
  201. // TODO: Add your message handler code here
  202. dc.SetBkMode( TRANSPARENT ) ;
  203. dc.SetTextColor( RGB( 0 , 0,0 ) ) ;
  204. dc.TextOut( m_MailRect.left , m_MailRect.top , "联系作者" ) ;
  205. dc.TextOut( m_WebRect.left , m_WebRect.top , "下载最新版本" ) ;
  206. // Do not call CDialog::OnPaint() for painting messages
  207. }
  208. HBRUSH CAboutDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
  209. {
  210. HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
  211. // TODO: Change any attributes of the DC here
  212. /*
  213. if( nCtlColor != CTLCOLOR_EDIT && nCtlColor != CTLCOLOR_LISTBOX )
  214. {
  215. pDC->SetBkMode( TRANSPARENT );
  216. return m_Brush ;
  217. }
  218. */
  219. // TODO: Return a different brush if the default is not desired
  220. return hbr;
  221. }