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

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