该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
// tuxingView.cpp : CtuxingView 类的实现
//
#include "stdafx.h"
#include "tuxing.h"
#include "tuxingDoc.h"
#include "tuxingView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CtuxingView
IMPLEMENT_DYNCREATE(CtuxingView, CView)
BEGIN_MESSAGE_MAP(CtuxingView, CView)
// 标准打印命令
ON_COMMAND(ID_FILE_PRINT, &CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, &CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CView::OnFilePrintPreview)
ON_WM_LBUTTONDOWN()
ON_WM_RBUTTONDOWN()
END_MESSAGE_MAP()
// CtuxingView 构造/析构
CtuxingView::CtuxingView()
{
// TODO: 在此处添加构造代码
}
CtuxingView::~CtuxingView()
{
}
BOOL CtuxingView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: 在此处通过修改
// CREATESTRUCT cs 来修改窗口类或样式
return CView::PreCreateWindow(cs);
}
// CtuxingView 绘制
void CtuxingView::OnDraw(CDC* pDC)
{
CtuxingDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
drawborder();
// TODO: 在此处为本机数据添加绘制代码
}
// CtuxingView 打印
BOOL CtuxingView::OnPreparePrinting(CPrintInfo* pInfo)
{
// 默认准备
return DoPreparePrinting(pInfo);
}
void CtuxingView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: 添加额外的打印前进行的初始化过程
}
void CtuxingView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: 添加打印后进行的清除过程
}
// CtuxingView 诊断
#ifdef _DEBUG
void CtuxingView::AssertValid() const
{
CView::AssertValid();
}
void CtuxingView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
CtuxingDoc* CtuxingView::GetDocument() const // 非调试版本是内联的
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CtuxingDoc)));
return (CtuxingDoc*)m_pDocument;
}
#endif //_DEBUG
// CtuxingView 消息处理程序
int CtuxingView::i=0;
int CtuxingView::ist=1;
void CtuxingView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CView::OnLButtonDown(nFlags, point);
drawborder();
drawgraph(point);
}
void CtuxingView::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CView::OnRButtonDown(nFlags, point);
drawright();
}
void CtuxingView::drawborder()
{
CClientDC dc(this);
CPen newpen(PS_SOLID,1,RGB(150,150,150));
CPen * oldpen=dc.SelectObject(&newpen);
dc.MoveTo(300,100);
dc.LineTo(400,100);
dc.LineTo(400,200);
dc.LineTo(300,200);
dc.LineTo(300,100);
}
void CtuxingView::drawgraph(CPoint point)
{
if(ist)
{
p[i].x=point.x;
p[i].y=point.y;
CClientDC dc(this);
CPen newpen(PS_SOLID,2,RGB(255,0,0));
CPen * oldpen=dc.SelectObject(&newpen);
if(i==0)
dc.MoveTo(p[i].x,p[i].y);
else
dc.MoveTo(p[i-1].x,p[i-1].y);
dc.LineTo(p[i].x,p[i].y);
i++;
}
}
void CtuxingView::drawright()
{
CClientDC dc(this);
CPen newpen(PS_SOLID,2,RGB(255,0,0));
CPen * oldpen=dc.SelectObject(&newpen);
dc.MoveTo(p[0].x,p[0].y);
dc.LineTo(p[i-1].x,p[i-1].y);
ist=0;
}