www.pudn.com > PaletteDemo.rar > PaletteDemoView.cpp
// PaletteDemoView.cpp : implementation of the CPaletteDemoView class
//
#include "stdafx.h"
#include "PaletteDemo.h"
#include "PaletteDemoDoc.h"
#include "PaletteDemoView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
static const CString strInfo =
"This sample illustrates how to multi-column toolbar with\r\n"
"with owner-draw information area.\r\n\r\n"
"To change columns number, just click \"2\", \"3\" or \"4\" button";
/////////////////////////////////////////////////////////////////////////////
// CPaletteDemoView
IMPLEMENT_DYNCREATE(CPaletteDemoView, CView)
BEGIN_MESSAGE_MAP(CPaletteDemoView, CView)
//{{AFX_MSG_MAP(CPaletteDemoView)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, OnFilePrintPreview)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPaletteDemoView construction/destruction
CPaletteDemoView::CPaletteDemoView()
{
// TODO: add construction code here
}
CPaletteDemoView::~CPaletteDemoView()
{
}
BOOL CPaletteDemoView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CPaletteDemoView drawing
void CPaletteDemoView::OnDraw(CDC* pDC)
{
CPaletteDemoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
const int iOffset = 20;
CFont* pFontOld = (CFont*) pDC->SelectStockObject (DEFAULT_GUI_FONT);
ASSERT (pFontOld != NULL);
CRect rectClient;
GetClientRect (&rectClient);
CRect rectText = rectClient;
rectText.DeflateRect (iOffset, iOffset);
pDC->DrawText (strInfo, rectText, DT_CALCRECT | DT_WORDBREAK);
rectText.OffsetRect ( (rectClient.Width () - rectText.Width () - 2 * iOffset) / 2,
(rectClient.Height () - rectText.Height () - 2 * iOffset) / 2);
CRect rectFrame = rectText;
rectFrame.InflateRect (iOffset, iOffset);
pDC->FillSolidRect (rectFrame, ::GetSysColor (COLOR_INFOBK));
rectFrame.DeflateRect (1, 1);
pDC->Draw3dRect (rectFrame, ::GetSysColor (COLOR_3DSHADOW),
::GetSysColor (COLOR_3DLIGHT));
rectFrame.DeflateRect (2, 2);
pDC->Draw3dRect (rectFrame, ::GetSysColor (COLOR_3DSHADOW),
::GetSysColor (COLOR_3DLIGHT));
pDC->SetTextColor (::GetSysColor (COLOR_INFOTEXT));
pDC->SetBkMode (TRANSPARENT);
pDC->DrawText (strInfo, rectText, DT_WORDBREAK);
pDC->SelectObject (pFontOld);
}
/////////////////////////////////////////////////////////////////////////////
// CPaletteDemoView printing
void CPaletteDemoView::OnFilePrintPreview()
{
BCGPrintPreview (this);
}
BOOL CPaletteDemoView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void CPaletteDemoView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CPaletteDemoView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
/////////////////////////////////////////////////////////////////////////////
// CPaletteDemoView diagnostics
#ifdef _DEBUG
void CPaletteDemoView::AssertValid() const
{
CView::AssertValid();
}
void CPaletteDemoView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
CPaletteDemoDoc* CPaletteDemoView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CPaletteDemoDoc)));
return (CPaletteDemoDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CPaletteDemoView message handlers