DragonNest/Third/XTToolkitPro/Samples/Controls/MDITabWindows/MDITabWindowsView.cpp

202 lines
5.3 KiB
C++
Raw Normal View History

2024-12-19 09:48:26 +08:00
// MDITabWindowsView.cpp : implementation of the CMDITabWindowsView class
//
// This file is a part of the XTREME TOOLKIT MFC class library.
// (c)1998-2008 Codejock Software, All Rights Reserved.
//
// THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO
// BE RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED
// WRITTEN CONSENT OF CODEJOCK SOFTWARE.
//
// THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS
// OUTLINED IN THE XTREME TOOLKIT LICENSE AGREEMENT. CODEJOCK SOFTWARE
// GRANTS TO YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE
// THIS SOFTWARE ON A SINGLE COMPUTER.
//
// CONTACT INFORMATION:
// support@codejock.com
// http://www.codejock.com
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "MDITabWindows.h"
#include "MDITabWindowsDoc.h"
#include "MDITabWindowsView.h"
#include "MainFrm.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMDITabWindowsView
IMPLEMENT_DYNCREATE(CMDITabWindowsView, CEditView)
BEGIN_MESSAGE_MAP(CMDITabWindowsView, CEditView)
//{{AFX_MSG_MAP(CMDITabWindowsView)
ON_WM_CREATE()
ON_WM_DROPFILES()
ON_WM_RBUTTONDOWN()
ON_COMMAND(ID_FILE_PRINT_PREVIEW, OnFilePrintPreview)
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CEditView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CEditView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CEditView::OnFilePrintPreview)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMDITabWindowsView construction/destruction
CMDITabWindowsView::CMDITabWindowsView()
{
// TODO: add construction code here
}
CMDITabWindowsView::~CMDITabWindowsView()
{
}
BOOL CMDITabWindowsView::PreCreateWindow(CREATESTRUCT& cs)
{
if (!CEditView::PreCreateWindow(cs))
return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
cs.style &= ~(ES_AUTOHSCROLL|WS_HSCROLL); // Enable word-wrapping
cs.dwExStyle &= ~WS_EX_CLIENTEDGE;
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CMDITabWindowsView drawing
void CMDITabWindowsView::OnDraw(CDC* pDC)
{
CMDITabWindowsDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CRect r;
GetClientRect(&r);
pDC->Draw3dRect(r.left,r.top,r.Width(),r.Height(),0,0);
}
/////////////////////////////////////////////////////////////////////////////
// CMDITabWindowsView printing
BOOL CMDITabWindowsView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default CEditView preparation
return CEditView::OnPreparePrinting(pInfo);
}
void CMDITabWindowsView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)
{
// Default CEditView begin printing.
CEditView::OnBeginPrinting(pDC, pInfo);
}
void CMDITabWindowsView::OnEndPrinting(CDC* pDC, CPrintInfo* pInfo)
{
// Default CEditView end printing
CEditView::OnEndPrinting(pDC, pInfo);
}
void CMDITabWindowsView::OnFilePrintPreview()
{
CMainFrame* pMainFrame = (CMainFrame*)AfxGetMainWnd();
ASSERT_VALID(pMainFrame);
// show print preview.
pMainFrame->HideMDITabs();
//_xtAfxShowPrintPreview( this );
pMainFrame->ToggleMDITabs();
}
/////////////////////////////////////////////////////////////////////////////
// CMDITabWindowsView diagnostics
#ifdef _DEBUG
void CMDITabWindowsView::AssertValid() const
{
CEditView::AssertValid();
}
void CMDITabWindowsView::Dump(CDumpContext& dc) const
{
CEditView::Dump(dc);
}
CMDITabWindowsDoc* CMDITabWindowsView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMDITabWindowsDoc)));
return (CMDITabWindowsDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CMDITabWindowsView message handlers
int CMDITabWindowsView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CEditView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
DragAcceptFiles();
// SetFont(&XTAuxData().fontBold);
SetWindowText(_T("Right click on tab to see more options..."));
// TODO: Remove this line if you don't want cool
// menus for this view.
// m_coolMenu.HookWindow(GetEditCtrl().m_hWnd);
// m_coolMenu.LoadToolbar(IDR_MAINFRAME);
return 0;
}
void CMDITabWindowsView::OnDropFiles(HDROP hDropInfo)
{
// TODO: Add your message handler code here and/or call default
UINT nFiles = DragQueryFile(hDropInfo, (UINT)-1, NULL, 0);
TCHAR szFileName[_MAX_PATH + 1];
UINT nNames;
for(nNames = 0; nNames < nFiles; nNames++)
{
::ZeroMemory(szFileName, _MAX_PATH + 1);
::DragQueryFile(hDropInfo, nNames, (LPTSTR)szFileName, _MAX_PATH + 1);
AfxGetApp()->OpenDocumentFile(szFileName);
}
CEditView::OnDropFiles(hDropInfo);
}
void CMDITabWindowsView::OnRButtonDown(UINT /*nFlags*/, CPoint point)
{
CPoint pt = point;
ClientToScreen(&pt);
CMenu menu;
VERIFY(menu.LoadMenu(IDR_EDIT_POPUP));
CWnd* pWndPopupOwner = this;
while (pWndPopupOwner->GetStyle() & WS_CHILD)
pWndPopupOwner = pWndPopupOwner->GetParent();
CMenu* pPopup = menu.GetSubMenu(0);
CXTPCommandBars::TrackPopupMenu(pPopup, TPM_RIGHTBUTTON,
pt.x, pt.y, AfxGetMainWnd(), 0, 0, ((CXTPMDIFrameWnd*)AfxGetMainWnd())->GetCommandBars());
}