- Visual C++源码
- Visual Basic源码
- C++ Builder源码
- Java源码
- Delphi源码
- C/C++源码
- PHP源码
- Perl源码
- Python源码
- Asm源码
- Pascal源码
- Borland C++源码
- Others源码
- SQL源码
- VBScript源码
- JavaScript源码
- ASP/ASPX源码
- C#源码
- Flash/ActionScript源码
- matlab源码
- PowerBuilder源码
- LabView源码
- Flex源码
- MathCAD源码
- VBA源码
- IDL源码
- Lisp/Scheme源码
- VHDL源码
- Objective-C源码
- Fortran源码
- tcl/tk源码
- QT源码
MirrorLine.cpp
资源名称:CAD.zip [点击查看]
上传用户:hehe2haha
上传日期:2013-08-16
资源大小:161k
文件大小:1k
源码类别:
CAD
开发平台:
Visual C++
- // MirrorLine.cpp: implementation of the CMirrorLine class.
- //
- //////////////////////////////////////////////////////////////////////
- #include "stdafx.h"
- #include "MirrorLine.h"
- //////////////////////////////////////////////////////////////////////
- // Construction/Destruction
- //////////////////////////////////////////////////////////////////////
- CMirrorLine::CMirrorLine()
- {
- }
- CMirrorLine::CMirrorLine(CShape *Shape)
- {
- if (Shape != NULL)
- {
- SourceBeginPos = Shape->m_ptFirstPos;
- SourceEndPos = Shape->m_ptSecondPos;
- }
- }
- CMirrorLine::~CMirrorLine()
- {
- }
- void CMirrorLine::Mirror(HDC hdc,POINT BeginPos,POINT PrePos, POINT EndPos)
- {
- int nOldMode = ::SetROP2(hdc,R2_XORPEN);
- HPEN hPen = ::CreatePen( m_PenStyle,
- m_PenWidth,
- m_PenColor^ GetBkColor(hdc) );
- HPEN hOldPen = (HPEN)::SelectObject(hdc,hPen);
- SetSinCos(BeginPos,PrePos);
- SetMirrorPos(BeginPos,PrePos);
- //擦去前一次线段
- CDraw::DrawLine(hdc,MirrorBeginPos,MirrorEndPos);
- SetSinCos(BeginPos,EndPos);
- SetMirrorPos(BeginPos,EndPos);
- //画出这一次线段
- CDraw::DrawLine(hdc,MirrorBeginPos,MirrorEndPos);
- ::SetROP2(hdc,nOldMode);
- ::SelectObject(hdc,hOldPen);
- ::DeleteObject(hPen);
- }