【VC开源代码栏目提醒】:网学会员鉴于大家对VC开源代码十分关注,论文会员在此为大家搜集整理了“ex43View.cpp”一文,供大家参考学习
// ex43View.cpp : Cex43View 类的实现
//
#include "stdafx.h"
#include "ex43.h"
#include "ex43Doc.h"
#include "ex43View.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// Cex43View
IMPLEMENT_DYNCREATE(Cex43View, CView)
BEGIN_MESSAGE_MAP(Cex43View, CView)
// 标准打印命令
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()
// Cex43View 构造/销毁
Cex43View::Cex43View()
{
// TODO: 在此处添加构造代码
m_pBitmap1=new CBitmap;
m_pBitmap1->LoadBitmap(IDB_BITMAP1);
}
Cex43View::~Cex43View()
{
delete m_pBitmap1;
}
BOOL Cex43View::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: 在此处通过修改 CREATESTRUCT cs 来修改窗口类或
// 样式
return CView::PreCreateWindow(cs);
}
// Cex43View 绘制
void Cex43View::OnDraw(CDC* pDC)
{
// 构造CBrush对象
CBrush br1(RGB(255,0,0));
CBrush br2(HS_CROSS,RGB(0,255,0));
CBrush br3(m_pBitmap1);
// 构造CPen对象
CPen BluePen(PS_SOLID,3,RGB(0,0,255));
//画第一个圆
CRect rc1(0,0,100,100);
pDC->SelectObject(&br1);
pDC->Ellipse(&rc1);
pDC->DrawText("实心刷子",&rc1,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
//画第二个圆
CRect rc2(100,0,200,100);
pDC->SelectObject(&br2);
pDC->Ellipse(&rc2);
pDC->DrawText("哈希刷子",&rc2,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
//画第三个椭圆
CRect rc3(200,0,400,100);
pDC->SelectObject(&br3);
pDC->SelectObject(&BluePen);
pDC->Ellipse(&rc3);
pDC->DrawText("位图刷子及蓝笔",&rc3,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
//恢复笔和刷子
pDC->SelectStockObject(BLACK_BRUSH);
pDC->SelectStockObject(BLACK_PEN);
//CFont
CFont newFont; //构造CFont对象
static LOGFONT lf;
lf.lfHeight=-100;
lf.lfCharSet=GB2312_CHARSET;
strcpy(lf.lfFaceName,"黑体");
newFont.CreateFontIndirect( &lf); //创建字体
CFont* pDefFont=(CFont*)pDC->SelectObject(&newFont);//选入
pDC->SetTextColor(RGB(255,0,0));
pDC->TextOut(0,100,"字体使用");
pDC->SelectObject(pDefFont); //恢复字体
} //删除 br1、br2、br3、BluePen、newFont 对象
// Cex43View 打印
BOOL Cex43View::OnPreparePrinting(CPrintInfo* pInfo)
{
// 默认准备
return DoPreparePrinting(pInfo);
}
void Cex43View::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: 打印前添加额外的初始化
}
void Cex43View::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: 打印后添加清除过程
}
// Cex43View 诊断
#ifdef _DEBUG
void Cex43View::AssertValid() const
{
CView::AssertValid();
}
void Cex43View::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
Cex43Doc* Cex43View::GetDocument() const // 非调试版本是内联的
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(Cex43Doc)));
return (Cex43Doc*)m_pDocument;
}
#endif //_DEBUG
// Cex43View 消息处理
程序