📄 chapter5_2view.cpp
字号:
// chapter5_2View.cpp : implementation of the CChapter5_2View class
//
#include "stdafx.h"
#include "chapter5_2.h"
#include "chapter5_2Doc.h"
#include "chapter5_2View.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CChapter5_2View
IMPLEMENT_DYNCREATE(CChapter5_2View, CView)
BEGIN_MESSAGE_MAP(CChapter5_2View, CView)
//{{AFX_MSG_MAP(CChapter5_2View)
// 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
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CChapter5_2View construction/destruction
CChapter5_2View::CChapter5_2View()
{
// TODO: add construction code here
}
CChapter5_2View::~CChapter5_2View()
{
}
BOOL CChapter5_2View::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CChapter5_2View drawing
void CChapter5_2View::OnDraw(CDC* pDC)
{
CChapter5_2Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
/**********************************************************/
/* SetPixel、MoveTo、LineTo等函数范例 */
/* 看本例效果请将注释删除并编译后执行即可 */
/**********************************************************/
/*
pDC->SetPixel(80,80,RGB(0,0,255));
pDC->MoveTo(10,250);
pDC->LineTo(250,250);
CRect rect1(30,30,200,200);
POINT point1,point2;
point1.x=30;
point1.y=30;
point2.x=50;
point2.y=50;
//pDC->Arc(rect1,point1,point2);
pDC->Rectangle(200,80,250,200);
pDC->Ellipse(60,10,200,210);
CRect rect2(50,50,210,210);
CRect rect3(10,10,70,70);
CRect rect4(30,30,90,40);
CBrush brush(RGB(0,0,255));
pDC->DrawFocusRect(rect2);
pDC->FillRect(rect3,&brush);
pDC->FrameRect(rect4,&brush);
pDC->InvertRect(rect4);
*/
/**********************************************************/
/* SelectStockObject()函数范例 */
/* 看本例效果请将注释删除并编译后执行即可 */
/**********************************************************/
/*
//定义椭圆的边界
CRect rect(50,50,210,210);
//声明CPen类对象指针
CPen *pOldPen;
//调用CDC类成员函数SelectStockObject()选用黑色画笔,并将当前画笔存人指针pOldPen
pOldPen=(CPen*)pDC->SelectStockObject(BLACK_PEN);
//凋用CDC类成员函数Ellipse()绘制椭圆.
pDC->Ellipse(rect);
//调用CDC类成员函数SelectObject()恢复以前的画笔。
pDC->SelectObject(pOldPen);
*/
/**********************************************************/
/* 创建自定义画笔一范例 */
/* 看本例效果请将注释删除并编译后执行即可 */
/**********************************************************/
/*
//建立红色画笔
CPen hRedPen(PS_SOLID,1,RGB(255,0,0));
CPen* pBulePen;
CPen hGreenPen;
CPen* pPrePen;
//建立蓝色画笔(用new操作符)
pBulePen=new CPen(PS_SOLID,1,RGB(0,0,255));
//调用CPen成员函数CreatePen()生成绿色画笔
hGreenPen.CreatePen(PS_SOLID,1,RGB(0,255,0));
//调用CDC成员函数SelectObject()选用绿色画笔,同时返回当前画笔指针,并将该指针保存在pPrePen.
if (pPrePen=pDC->SelectObject(&hRedPen))
{
//用红色笔画椭圆
pDC->Ellipse(40,70,230,160);
//选用绿色笔画椭圆
pDC->SelectObject(&hGreenPen);
pDC->Ellipse(60,70,210,160);
//选用蓝色笔画椭圆
pDC->SelectObject(pBulePen);
pDC->Ellipse(80,70,190,160);
//恢复最初的画笔
pDC->SelectObject(pPrePen);
}
//删除蓝色笔指针
delete pBulePen;
*/
/**********************************************************/
/* 创建自定义画笔二范例 */
/* 看本例效果请将注释删除并编译后执行即可 */
/**********************************************************/
/*
CPen hPen;
CPen *pPen;
//声明LOGPEN类型的变量logPen
LOGPEN logPen;
//声明并初始化POINT类型的变量With
POINT With={20,0};
//初始化LOGPEN类型变量建立新画笔
logPen.lopnStyle=PS_DASH;
logPen.lopnWidth=With;
logPen.lopnColor=RGB(0,255,0);
//调用CPen成员函数CreatePenIndirect生成新画笔
hPen.CreatePenIndirect(&logPen);
//调用CDC成员函数SelectObject()选用新画笔,同时返回当前画笔指针,并将该指针保存在pPen.
pPen=pDC->SelectObject(&hPen);
//用新画笔画椭圆
pDC->Ellipse(20,30,210,220);
//恢复最初的画笔
pDC->SelectObject(pPen);
*/
/**********************************************************/
/* 画刷使用范例 */
/* 看本例效果请将注释删除并编译后执行即可 */
/**********************************************************/
/*
//红色画刷
CBrush SolidBrush(RGB(255,0,0));
//调用CBrush成员函数SelectObject()选用红色画刷,同时返回当前画刷的指针,并将该指针保存在
CBrush * pBrush=pDC->SelectObject(&SolidBrush);
//用红色画刷画实心矩形。
pDC->Rectangle(20,20,100,100);
//调用CDC类成员函数SelectObject()回复原画刷
pDC->SelectObject(&pBrush);
*/
/**********************************************************/
/* 位图画刷使用范例 */
/* 看本例效果请将注释删除并编译后执行即可 */
/**********************************************************/
/*
CBitmap Pattern;
CBrush PatternBrush;
CBrush *pPerBrush;
Pattern.LoadBitmap(IDB_BITMAP1);
PatternBrush.CreatePatternBrush(&Pattern);
pPerBrush=pDC->SelectObject(&PatternBrush);
pDC->Ellipse(30,10,200,200);
pDC->SelectObject(pPerBrush);
*/
/**********************************************************/
/* 方便的画笔和刷子类使用范例 */
/* 看本例效果请将注释删除并编译后执行即可 */
/**********************************************************/
/*
CColorPen _penRed(pDC->m_hDC,RGB(255,0,0)); //创建红色画笔
pDC->LineTo(210,210); //画线
CColorBrush _brushGreen(pDC->m_hDC,RGB(0,255,34));//创建绿色刷子
pDC->Ellipse(CRect(0,0,200,100)); //画椭圆
*/
/**********************************************************/
/* 绘图模式使用范例 */
/* 看本例效果请将注释删除并编译后执行即可 */
/**********************************************************/\
CPen newPen;
CPen *oldPen;
//调用CPen成员函数CreatePen()创建风格为PS_SOLID、线宽为5、颜色为绿色的画笔
newPen.CreatePen(PS_SOLID,5,RGB(0,255,0));
//调用CDC成员函数SelectObject()选用新创建的画笔,并将当前画笔指针传递给对象oldPen
oldPen=pDC->SelectObject(&newPen);
//调用CDC成员函数SetROP2()将绘图模式设置为R2_NOT
pDC->SetROP2(R2_NOT);
//调用CDC类成员函数画矩形,画线
pDC->Rectangle(50,30,120,120);
pDC->MoveTo(200,30);
pDC->LineTo(200,200);
//调用CDC类成员函数SelectObject()恢复原画笔。
pDC->SelectObject(&oldPen);
}
SRCCOPY
/////////////////////////////////////////////////////////////////////////////
// CChapter5_2View diagnostics
#ifdef _DEBUG
void CChapter5_2View::AssertValid() const
{
CView::AssertValid();
}
void CChapter5_2View::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
CChapter5_2Doc* CChapter5_2View::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CChapter5_2Doc)));
return (CChapter5_2Doc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CChapter5_2View message handlers
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -