home *** CD-ROM | disk | FTP | other *** search
/ Mastering MFC Development / MMD.ISO / labs / c05 / lab06 / baseline / dlgopenf.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1997-02-20  |  2.2 KB  |  117 lines

  1. // DlgOpenF.cpp : implementation file
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "diff.h"
  6. #include "DlgOpenF.h"
  7. #include "dlgfilex.h"
  8.  
  9. #ifdef _DEBUG
  10. #define new DEBUG_NEW
  11. #undef THIS_FILE
  12. static char THIS_FILE[] = __FILE__;
  13. #endif
  14.  
  15. /////////////////////////////////////////////////////////////////////////////
  16. // CDlgOpenFiles dialog
  17.  
  18.  
  19. CDlgOpenFiles::CDlgOpenFiles(CWnd* pParent /*=NULL*/)
  20.     : CDialog(CDlgOpenFiles::IDD, pParent)
  21. {
  22.     //{{AFX_DATA_INIT(CDlgOpenFiles)
  23.     m_File1 = _T("");
  24.     m_File2 = _T("");
  25.     //}}AFX_DATA_INIT
  26. }
  27.  
  28.  
  29. void CDlgOpenFiles::DoDataExchange(CDataExchange* pDX)
  30. {
  31.     CDialog::DoDataExchange(pDX);
  32.     //{{AFX_DATA_MAP(CDlgOpenFiles)
  33.     DDX_Text(pDX, IDC_EDIT_FILE1, m_File1);
  34.     DDV_MaxChars(pDX, m_File1, 255);
  35.     DDX_Text(pDX, IDC_EDIT_FILE2, m_File2);
  36.     DDV_MaxChars(pDX, m_File2, 255);
  37.     //}}AFX_DATA_MAP
  38. }
  39.  
  40.  
  41. BEGIN_MESSAGE_MAP(CDlgOpenFiles, CDialog)
  42.     //{{AFX_MSG_MAP(CDlgOpenFiles)
  43.     ON_BN_CLICKED(IDC_BUTTON_FILE1_BROWSE, OnButtonFile1Browse)
  44.     ON_BN_CLICKED(IDC_BUTTON_FILE2_BROWSE, OnButtonFile2Browse)
  45.     //}}AFX_MSG_MAP
  46. END_MESSAGE_MAP()
  47.  
  48. /////////////////////////////////////////////////////////////////////////////
  49. // CDlgOpenFiles attributes
  50. void CDlgOpenFiles::GetFile1(CString& rFile)
  51. {
  52.         rFile = m_File1;
  53. }
  54.  
  55. void CDlgOpenFiles::GetFile2(CString& rFile)
  56. {
  57.         rFile = m_File2;
  58. }
  59.  
  60. BOOL CDlgOpenFiles::IsValidFileSpec (LPCSTR lpszFileSpec)
  61. {
  62.     OFSTRUCT    of;
  63.     if(OpenFile(lpszFileSpec, &of, OF_EXIST) == HFILE_ERROR)
  64.     {
  65.         return FALSE;
  66.     }
  67.     else
  68.     {
  69.         return TRUE;
  70.     }
  71. }
  72.  
  73.  
  74. /////////////////////////////////////////////////////////////////////////////
  75. // CDlgOpenFiles message handlers
  76.  
  77. void CDlgOpenFiles::OnButtonFile1Browse() 
  78. {
  79.     UpdateData();
  80.     CFileOpenEx dlg;
  81.     
  82.     if (dlg.DoModal() == IDOK)
  83.     {
  84.         m_File1 = dlg.GetPathName();
  85.     }
  86.     UpdateData(FALSE);
  87. }
  88.  
  89. void CDlgOpenFiles::OnButtonFile2Browse() 
  90. {
  91.     UpdateData();
  92.     CFileOpenEx dlg;
  93.     
  94.     if (dlg.DoModal() == IDOK)
  95.     {
  96.         m_File2 = dlg.GetPathName();
  97.     }
  98.     UpdateData(FALSE);
  99. }
  100.  
  101. void CDlgOpenFiles::OnOK() 
  102. {
  103.     UpdateData();
  104.     if(IsValidFileSpec(m_File1) && 
  105.         (IsValidFileSpec(m_File2)))
  106.     {    
  107.         CDialog::OnOK();
  108.     }
  109.     else
  110.     {
  111.         CString ErrMsg;
  112.         AfxFormatString2(ErrMsg, IDS_ERRFMT_INVALIDFILE, 
  113.                             m_File1, m_File2);
  114.         MessageBox (ErrMsg);
  115.     }
  116. }
  117.