GuiFDir.cpp
上传用户:zhanglf88
上传日期:2013-11-19
资源大小:6036k
文件大小:3k
源码类别:

金融证券系统

开发平台:

Visual C++

  1. //-----------------------------------------------------------------------//
  2. // This is a part of the GuiLib MFC Extention.  //
  3. // Autor  :  Francisco Campos  //
  4. // (C) 2002 Francisco Campos <www.beyondata.com> All rights reserved     //
  5. // This code is provided "as is", with absolutely no warranty expressed  //
  6. // or implied. Any use is at your own risk.  //
  7. // You must obtain the author's consent before you can include this code //
  8. // in a software library.  //
  9. // If the source code in  this file is used in any application  //
  10. // then acknowledgement must be made to the author of this program  //
  11. // fcampos@tutopia.com  //
  12. //-----------------------------------------------------------------------//
  13. #include "stdafx.h"
  14. #include "GuiFDir.h"
  15. #include <Dlgs.h>     
  16. #ifdef _DEBUG
  17. #define new DEBUG_NEW
  18. #undef THIS_FILE
  19. static char THIS_FILE[] = __FILE__;
  20. #endif
  21. /////////////////////////////////////////////////////////////////////////////
  22. // CFDir
  23. #define ID_BUTTONOK  200
  24. #define IDEDIT  201
  25. IMPLEMENT_DYNAMIC(CGuiFDir, CFileDialog)
  26. CGuiFDir::CGuiFDir(CWnd* parent)
  27. :CFileDialog(TRUE, NULL,"*..*", 
  28.              OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST,
  29.              NULL, parent)
  30. {
  31.     m_ofn.lpstrTitle = _T("Select Folder");
  32. m_ofn.lpstrFilter =_T("Directory");
  33. }
  34. BEGIN_MESSAGE_MAP(CFWnd, CWnd)
  35.         //ON_BN_CLICKED(ID_BUTTONOK, OnOpen)
  36. ON_BN_CLICKED(IDOK, OnOpen)
  37. END_MESSAGE_MAP()
  38. BEGIN_MESSAGE_MAP(CGuiFDir,CFileDialog)
  39. //{{AFX_MSG_MAP(CFDir)
  40. //}}AFX_MSG_MAP
  41. END_MESSAGE_MAP()
  42. void CFWnd::OnOpen()
  43. {
  44. CString m_GetPath;
  45. GetDlgItem(IDEDIT)->GetWindowText(m_GetPath);
  46. DWORD attr = GetFileAttributes((LPCTSTR)m_GetPath);
  47.     if (attr != 0xFFFFFFFF && (attr & FILE_ATTRIBUTE_DIRECTORY) != 0)
  48.      {
  49. ::EndDialog(m_hWnd, IDOK);
  50.      }
  51.  
  52. }
  53. void CGuiFDir::OnInitDone()
  54. {
  55. CRect rc;
  56. CRect rcCancel;
  57. CRect rclst;
  58. CString m_Caption;
  59. VERIFY(cw=GetParent());
  60. VERIFY(cfwn.SubclassWindow(cw->m_hWnd));
  61. cw->GetDlgItem(stc3)->SetWindowText(_T("Folder:"));
  62. cw->GetDlgItem(stc2)->SetWindowText(_T("Selection type:"));
  63.     cw->GetDlgItem(edt1)->GetWindowRect(rc);
  64. cw->ScreenToClient(rc);
  65. m_cedit.Create(WS_TABSTOP | WS_VISIBLE | WS_CHILD,rc,cw,IDEDIT);
  66. m_cedit.SetWindowPos(this,0,0,0,0,SWP_NOMOVE | SWP_NOSIZE);
  67. m_cedit.ModifyStyleEx(0, WS_EX_CLIENTEDGE, SWP_DRAWFRAME);
  68. m_cedit.SetWindowText(m_ofn.lpstrInitialDir);
  69. m_cedit.SetFont(cw->GetDlgItem(edt1)->GetFont());
  70. HideControl(edt1);
  71. CFileDialog::OnInitDone();
  72. }
  73. void CGuiFDir::OnFolderChange()
  74. {
  75. m_GetPath=GetFolderPath();
  76. m_cedit.SetWindowText(m_GetPath);
  77. CFileDialog::OnFolderChange();
  78. }