DirFrm.cpp
上传用户:gzboli
上传日期:2013-04-10
资源大小:471k
文件大小:3k
源码类别:

图片显示

开发平台:

Visual C++

  1. // DirFrm.cpp : implementation of the CDirFrame class
  2. //
  3. #include "stdafx.h"
  4. #include "QuickImage.h"
  5. #include "DirFrm.h"
  6. #include "DirView.h"
  7. #include "Quickview.h"
  8. #include "FileView.h"
  9. #include "MainFrm.h"
  10. #ifdef _DEBUG
  11. #define new DEBUG_NEW
  12. #undef THIS_FILE
  13. static char THIS_FILE[] = __FILE__;
  14. #endif
  15. /////////////////////////////////////////////////////////////////////////////
  16. // CDirFrame
  17. IMPLEMENT_DYNCREATE(CDirFrame, CMDIChildWnd)
  18. BEGIN_MESSAGE_MAP(CDirFrame, CMDIChildWnd)
  19. //{{AFX_MSG_MAP(CDirFrame)
  20. ON_WM_SIZE()
  21. ON_WM_MDIACTIVATE()
  22. //}}AFX_MSG_MAP
  23. END_MESSAGE_MAP()
  24. /////////////////////////////////////////////////////////////////////////////
  25. // CDirFrame construction/destruction
  26. CDirFrame::CDirFrame()
  27. {
  28. // TODO: add member initialization code here
  29. m_bReSize = false;
  30. }
  31. CDirFrame::~CDirFrame()
  32. {
  33. }
  34. BOOL CDirFrame::PreCreateWindow(CREATESTRUCT& cs)
  35. {
  36. // TODO: Modify the Window class or styles here by modifying
  37. //  the CREATESTRUCT cs
  38. // cs.style &= WS_CHILD | WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE | WS_MAXIMIZE;
  39. if( !CMDIChildWnd::PreCreateWindow(cs) )
  40. return FALSE;
  41. // cs.style &= WS_MAXIMIZE;
  42. ((CMDIFrameWnd*)AfxGetMainWnd())->MDIMaximize(this);
  43. return TRUE;
  44. }
  45. /////////////////////////////////////////////////////////////////////////////
  46. // CDirFrame diagnostics
  47. #ifdef _DEBUG
  48. void CDirFrame::AssertValid() const
  49. {
  50. CMDIChildWnd::AssertValid();
  51. }
  52. void CDirFrame::Dump(CDumpContext& dc) const
  53. {
  54. CMDIChildWnd::Dump(dc);
  55. }
  56. #endif //_DEBUG
  57. /////////////////////////////////////////////////////////////////////////////
  58. // CDirFrame message handlers
  59. BOOL CDirFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) 
  60. {
  61. CRect rc;
  62. GetClientRect(&rc);
  63. WORD wd=rc.Width() / 3;
  64. if(!m_wndSplitV.CreateStatic(this, 1, 2))
  65. return FALSE;
  66. m_wndSplitV.SetColumnInfo(0, wd, 0);
  67. if(!m_wndSplitH.CreateStatic(&m_wndSplitV, 2, 1, WS_CHILD|WS_VISIBLE,
  68. m_wndSplitV.IdFromRowCol(0, 0)))
  69. return FALSE;
  70. m_wndSplitH.SetRowInfo(1, wd, 0);
  71. m_wndSplitH.CreateView(0, 0, RUNTIME_CLASS(CDirView),
  72. CSize(wd, rc.Height() - wd), pContext);
  73. m_wndSplitH.CreateView(1, 0, RUNTIME_CLASS(CQuickView), CSize(wd, wd), pContext);
  74. m_wndSplitV.CreateView(0, 1, RUNTIME_CLASS(CFileView),
  75. CSize(rc.Width() - wd, 100), pContext);
  76. m_bReSize = true;
  77.     return TRUE; 
  78. return CMDIChildWnd::OnCreateClient(lpcs, pContext);
  79. }
  80. void CDirFrame::OnSize(UINT nType, int cx, int cy) 
  81. {
  82. if(m_bReSize)
  83. {
  84. CRect rcQuickView;
  85. CWnd *pWnd = m_wndSplitH.GetPane(1, 0);
  86. ASSERT(IsWindow(pWnd->GetSafeHwnd()));
  87. pWnd->GetClientRect(&rcQuickView);
  88. m_wndSplitH.SetRowInfo(0, cy - rcQuickView.Height() - 10, 0);
  89. }
  90. CMDIChildWnd::OnSize(nType, cx, cy);
  91. }
  92. void CDirFrame::OnMDIActivate(BOOL bActivate, CWnd* pActivateWnd, CWnd* pDeactivateWnd) 
  93. {
  94. CMDIChildWnd::OnMDIActivate(bActivate, pActivateWnd, pDeactivateWnd);
  95. // if(bActivate || NULL == pActivateWnd)
  96. // ((CMainFrame*)AfxGetMainWnd())->UpdateUIs(bActivate, pActivateWnd, pDeactivateWnd);
  97. }