MDITabWindowsView.cpp
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:6k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // MDITabWindowsView.cpp : implementation of the CMDITabWindowsView class
  2. //
  3. // This file is a part of the XTREME TOOLKIT MFC class library.
  4. // (c)1998-2008 Codejock Software, All Rights Reserved.
  5. //
  6. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO 
  7. // BE RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED 
  8. // WRITTEN CONSENT OF CODEJOCK SOFTWARE.
  9. //
  10. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS 
  11. // OUTLINED IN THE XTREME TOOLKIT LICENSE AGREEMENT.  CODEJOCK SOFTWARE 
  12. // GRANTS TO YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE 
  13. // THIS SOFTWARE ON A SINGLE COMPUTER.
  14. //
  15. // CONTACT INFORMATION:
  16. // support@codejock.com
  17. // http://www.codejock.com
  18. //
  19. //////////////////////////////////////////////////////////////////////
  20. #include "stdafx.h"
  21. #include "MDITabWindows.h"
  22. #include "MDITabWindowsDoc.h"
  23. #include "MDITabWindowsView.h"
  24. #include "MainFrm.h"
  25. #ifdef _DEBUG
  26. #define new DEBUG_NEW
  27. #undef THIS_FILE
  28. static char THIS_FILE[] = __FILE__;
  29. #endif
  30. /////////////////////////////////////////////////////////////////////////////
  31. // CMDITabWindowsView
  32. IMPLEMENT_DYNCREATE(CMDITabWindowsView, CEditView)
  33. BEGIN_MESSAGE_MAP(CMDITabWindowsView, CEditView)
  34. //{{AFX_MSG_MAP(CMDITabWindowsView)
  35. ON_WM_CREATE()
  36. ON_WM_DROPFILES()
  37. ON_WM_RBUTTONDOWN()
  38. ON_COMMAND(ID_FILE_PRINT_PREVIEW, OnFilePrintPreview)
  39. //}}AFX_MSG_MAP
  40.     // Standard printing commands
  41. ON_COMMAND(ID_FILE_PRINT, CEditView::OnFilePrint)
  42. ON_COMMAND(ID_FILE_PRINT_DIRECT, CEditView::OnFilePrint)
  43. ON_COMMAND(ID_FILE_PRINT_PREVIEW, CEditView::OnFilePrintPreview)
  44. END_MESSAGE_MAP()
  45. /////////////////////////////////////////////////////////////////////////////
  46. // CMDITabWindowsView construction/destruction
  47. CMDITabWindowsView::CMDITabWindowsView()
  48. {
  49. // TODO: add construction code here
  50. }
  51. CMDITabWindowsView::~CMDITabWindowsView()
  52. {
  53. }
  54. BOOL CMDITabWindowsView::PreCreateWindow(CREATESTRUCT& cs)
  55. {
  56. if (!CEditView::PreCreateWindow(cs))
  57. return FALSE;
  58. // TODO: Modify the Window class or styles here by modifying
  59. //  the CREATESTRUCT cs
  60. cs.style &= ~(ES_AUTOHSCROLL|WS_HSCROLL); // Enable word-wrapping
  61. cs.dwExStyle &= ~WS_EX_CLIENTEDGE;
  62. return TRUE;
  63. }
  64. /////////////////////////////////////////////////////////////////////////////
  65. // CMDITabWindowsView drawing
  66. void CMDITabWindowsView::OnDraw(CDC* pDC)
  67. {
  68. CMDITabWindowsDoc* pDoc = GetDocument();
  69. ASSERT_VALID(pDoc);
  70. // TODO: add draw code for native data here
  71. CRect r;
  72. GetClientRect(&r);
  73. pDC->Draw3dRect(r.left,r.top,r.Width(),r.Height(),0,0);
  74. }
  75. /////////////////////////////////////////////////////////////////////////////
  76. // CMDITabWindowsView printing
  77. BOOL CMDITabWindowsView::OnPreparePrinting(CPrintInfo* pInfo)
  78. {
  79. // default CEditView preparation
  80. return CEditView::OnPreparePrinting(pInfo);
  81. }
  82. void CMDITabWindowsView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)
  83. {
  84. // Default CEditView begin printing.
  85. CEditView::OnBeginPrinting(pDC, pInfo);
  86. }
  87. void CMDITabWindowsView::OnEndPrinting(CDC* pDC, CPrintInfo* pInfo)
  88. {
  89. // Default CEditView end printing
  90. CEditView::OnEndPrinting(pDC, pInfo);
  91. }
  92. void CMDITabWindowsView::OnFilePrintPreview() 
  93. {
  94.     CMainFrame* pMainFrame = (CMainFrame*)AfxGetMainWnd();
  95.     ASSERT_VALID(pMainFrame);
  96. // show print preview.
  97.     pMainFrame->HideMDITabs();
  98. //_xtAfxShowPrintPreview( this );
  99.     pMainFrame->ToggleMDITabs();
  100. }
  101. /////////////////////////////////////////////////////////////////////////////
  102. // CMDITabWindowsView diagnostics
  103. #ifdef _DEBUG
  104. void CMDITabWindowsView::AssertValid() const
  105. {
  106. CEditView::AssertValid();
  107. }
  108. void CMDITabWindowsView::Dump(CDumpContext& dc) const
  109. {
  110. CEditView::Dump(dc);
  111. }
  112. CMDITabWindowsDoc* CMDITabWindowsView::GetDocument() // non-debug version is inline
  113. {
  114. ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMDITabWindowsDoc)));
  115. return (CMDITabWindowsDoc*)m_pDocument;
  116. }
  117. #endif //_DEBUG
  118. /////////////////////////////////////////////////////////////////////////////
  119. // CMDITabWindowsView message handlers
  120. int CMDITabWindowsView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
  121. {
  122. if (CEditView::OnCreate(lpCreateStruct) == -1)
  123. return -1;
  124. // TODO: Add your specialized creation code here
  125. DragAcceptFiles();
  126. //    SetFont(&XTAuxData().fontBold);
  127.     SetWindowText(_T("Right click on tab to see more options..."));
  128.     
  129. // TODO: Remove this line if you don't want cool
  130. // menus for this view.
  131. // m_coolMenu.HookWindow(GetEditCtrl().m_hWnd);
  132. // m_coolMenu.LoadToolbar(IDR_MAINFRAME);
  133. return 0;
  134. }
  135. void CMDITabWindowsView::OnDropFiles(HDROP hDropInfo) 
  136. {
  137. // TODO: Add your message handler code here and/or call default
  138. UINT nFiles = DragQueryFile(hDropInfo, (UINT)-1, NULL, 0);
  139. TCHAR szFileName[_MAX_PATH + 1];
  140. UINT nNames;
  141. for(nNames = 0; nNames < nFiles; nNames++)
  142. {
  143. ::ZeroMemory(szFileName, _MAX_PATH + 1);
  144. ::DragQueryFile(hDropInfo, nNames, (LPTSTR)szFileName, _MAX_PATH + 1);
  145. AfxGetApp()->OpenDocumentFile(szFileName);
  146. }
  147. CEditView::OnDropFiles(hDropInfo);
  148. }
  149. void CMDITabWindowsView::OnRButtonDown(UINT /*nFlags*/, CPoint point) 
  150. {
  151. CPoint pt = point;
  152. ClientToScreen(&pt);
  153. CMenu menu;
  154. VERIFY(menu.LoadMenu(IDR_EDIT_POPUP));
  155. CWnd* pWndPopupOwner = this;
  156. while (pWndPopupOwner->GetStyle() & WS_CHILD)
  157. pWndPopupOwner = pWndPopupOwner->GetParent();
  158. CMenu* pPopup = menu.GetSubMenu(0);
  159. CXTPCommandBars::TrackPopupMenu(pPopup, TPM_RIGHTBUTTON,
  160. pt.x, pt.y, AfxGetMainWnd(), 0, 0, ((CXTPMDIFrameWnd*)AfxGetMainWnd())->GetCommandBars());
  161. }