📄 sam绘图view.cpp
字号:
// sam绘图View.cpp : implementation of the CSamView class
//
#include "stdafx.h"
#include "sam绘图.h"
#include "sam绘图Doc.h"
#include "sam绘图View.h"
#include"SetDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSamView
IMPLEMENT_DYNCREATE(CSamView, CView)
BEGIN_MESSAGE_MAP(CSamView, CView)
//{{AFX_MSG_MAP(CSamView)
//}}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, CView::OnFilePrintPreview)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSamView construction/destruction
CSamView::CSamView()
{
// TODO: add construction code here
//m_Pcolor="";
//m_Bcolor="";
///m_Dstyle=-1;
//m_Pstyle=-1;
//m_Bstyle=-1;
}
CSamView::~CSamView()
{
}
BOOL CSamView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CSamView drawing
void CSamView::OnDraw(CDC* pDC)
{
CSamDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CPen NewPen;
CPen* OldPen;
CBrush NewBrush;
CBrush* OldBrush;
COLORREF Pcolor,Bcolor;
if(m_Pcolor=="Red")
{
Pcolor=RGB(255,0,0);
}
if(m_Pcolor=="Green")
{
Pcolor=RGB(0,255,0);
}
if(m_Pcolor=="Blue")
{
Pcolor=RGB(0,0,255);
}
if(m_Bcolor=="Red")
{
Bcolor=RGB(255,0,0);
}
if(m_Bcolor=="Green")
{
Bcolor=RGB(0,255,0);
}
if(m_Bcolor=="Blue")
{
Bcolor=RGB(0,0,255);
}
switch(m_Pstyle)
{
case 0:
NewPen.CreatePen(0,1,Pcolor);
break;
case 1:
NewPen.CreatePen(1,1,Pcolor);
break;
case 2:
NewPen.CreatePen(2,1,Pcolor);
break;
case 3:
NewPen.CreatePen(3,1,Pcolor);
break;
}
OldPen=pDC->SelectObject(&NewPen);
switch(m_Bstyle)
{
case 0:
NewBrush.CreateSolidBrush(Bcolor);
break;
case 1:
NewBrush.CreateHatchBrush(HS_CROSS,Bcolor);
break;
case 2:
NewBrush.CreateHatchBrush(HS_FDIAGONAL,Bcolor);
break;
case 3:
NewBrush.CreateHatchBrush(HS_BDIAGONAL,Bcolor);
break;
}
OldBrush=pDC->SelectObject(&NewBrush);
switch(m_Dstyle)
{
case 0:
pDC->MoveTo(100,100);
pDC->LineTo(400,400);
pDC->SelectObject(OldPen);
pDC->SelectObject(OldBrush);
NewBrush.DeleteObject();
break;
case 1:
pDC->Ellipse(50,50,500,500);
pDC->SelectObject(OldPen);
pDC->SelectObject(OldBrush);
NewBrush.DeleteObject();
break;
case 2:
pDC->Rectangle(50,50,500,500);
pDC->SelectObject(OldPen);
pDC->SelectObject(OldBrush);
NewBrush.DeleteObject();
break;
case 3:
pDC->RoundRect(50,50,500,500,20,20);
pDC->SelectObject(OldPen);
pDC->SelectObject(OldBrush);
NewBrush.DeleteObject();
break;
}
}
/////////////////////////////////////////////////////////////////////////////
// CSamView printing
BOOL CSamView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void CSamView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CSamView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
/////////////////////////////////////////////////////////////////////////////
// CSamView diagnostics
#ifdef _DEBUG
void CSamView::AssertValid() const
{
CView::AssertValid();
}
void CSamView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
CSamDoc* CSamView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CSamDoc)));
return (CSamDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CSamView message handlers
void CSamView::OnSet()
{
// TODO: Add your command handler code here
CSetDlg SetDlg;
if(IDOK==SetDlg.DoModal())
{
m_Bcolor=SetDlg.m_Bcolor;
m_Pcolor=SetDlg.m_Pcolor;
m_Pstyle=SetDlg.m_Pstyle;
m_Bstyle=SetDlg.m_Bstyle;
m_Dstyle=SetDlg.m_Dstyle;
Invalidate();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -