// huituView.cpp : ChuituView 类的实现 // #include "stdafx.h" #include "huitu.h" #include "huituDoc.h" #include "huituView.h" #ifdef _DEBUG #define new DEBUG_NEW #endif
// ChuituView IMPLEMENT_DYNCREATE(ChuituView, CView) BEGIN_MESSAGE_MAP(ChuituView, 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_COMMAND(ID_ELLI, &;ChuituView::OnElli) ON_COMMAND(ID_LINE, &;ChuituView::OnLine) ON_COMMAND(ID_RECT, &;ChuituView::OnRect) ON_WM_LBUTTONDOWN() ON_WM_MOUSEMOVE() ON_WM_LBUTTONUP() ON_COMMAND(ID_tccolor, &;ChuituView::Ontccolor) ON_COMMAND(ID_xzlolor, &;ChuituView::Onxzlolor) ON_COMMAND(ID_sx, &;ChuituView::Onsx) ON_COMMAND(ID_xx, &;ChuituView::Onxx) ON_COMMAND(ID_c, &;ChuituView::Onc) ON_COMMAND(ID_x, &;ChuituView::Onx) ON_WM_CREATE() ON_COMMAND(ID_Pen, &;ChuituView::OnPen) ON_COMMAND(ID_wtc, &;ChuituView::Onwtc) END_MESSAGE_MAP() // ChuituView 构造/析构 ChuituView::ChuituView() { // TODO: 在此处添加构造代码 } ChuituView::~ChuituView() { } BOOL ChuituView::PreCreateWindow(CREATESTRUCT&; cs) { // TODO: 在此处通过修改
//
CREATESTRUCT cs 来修改窗口类或样式
return CView::PreCreateWindow(cs); } // ChuituView 绘制 void ChuituView::OnDraw(CDC* /*pDC*/) { ChuituDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; // TODO: 在此处为本机数据添加绘制代码 }
// ChuituView 打印 BOOL ChuituView::OnPreparePrinting(CPrintInfo* pInfo) { // 默认准备 return DoPreparePrinting(pInfo); } void ChuituView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { // TODO: 添加额外的打印前进行的初始化过程 } void ChuituView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { // TODO: 添加打印后进行的清除过程 }
// ChuituView 诊断 #ifdef _DEBUG void ChuituView::AssertValid() const { CView::AssertValid(); } void ChuituView::Dump(CDumpContext&; dc) const { CView::Dump(dc); } ChuituDoc* ChuituView::GetDocument() const // 非调试版本是内联的 { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(ChuituDoc))); return (ChuituDoc*)m_pDocument; }
#endif //_DEBUG
// ChuituView 消息处理
程序 int ChuituView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CView::OnCreate(lpCreateStruct) == -1) return -1; pdc=new CClientDC(this); // 初始化默认设置 color=RGB(0,0,0); //默认线条颜色为黑色 tccolor=RGB(255,255,255); //默认填充颜色为白色 width=1; //默认线宽为 style=0; //默认实线 tcstyle=5;//默认为用颜色填充 type=4;//默认为画笔 a=false; tc=false; return 0; } void ChuituView::OnLine() { type=1;// 直线 } void ChuituView::OnElli() { type=2;// 圆 } void ChuituView::OnRect() { type=3;//矩形 } void ChuituView::OnPen() { type=4;// 画笔 }
void ChuituView::OnLButtonDown(UINT nFlags, CPoint point) { // 按下鼠标左键 p1=p2=point; pen.CreatePen(style,width,color); pdc->SelectObject(&;pen); if(tc) { bsh.CreateHatchBrus
h(6,tccolor); pdc->SelectObject(&;bsh); } else { pdc->SelectStockObject(NULL_BRUSH); }
pdc->SetROP2(R2_NOTXORPEN); a=true; CView::OnLButtonDown(nFlags, point); } void ChuituView::OnMouseMove(UINT nFlags, CPoint point) { // 移动鼠标 if