// 1900402213View.cpp: CMy1900402213View 类的实现
//
#include "pch.h"
#include "framework.h"
// SHARED_HANDLERS 可以在实现预览、缩略图和搜索筛选器句柄的
// ATL 项目中进行定义,并允许与该项目共享文档代码。
#ifndef SHARED_HANDLERS
#include "1900402213.h"
#endif
#include "CLine.h"
#include "CCircle.h"
#include "1900402213Doc.h"
#include "1900402213View.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CMy1900402213View
IMPLEMENT_DYNCREATE(CMy1900402213View, CView)
BEGIN_MESSAGE_MAP(CMy1900402213View, CView)
// 标准打印命令
ON_COMMAND(ID_FILE_PRINT, &CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, &CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CMy1900402213View::OnFilePrintPreview)
ON_WM_CONTEXTMENU()
ON_WM_RBUTTONUP()
ON_COMMAND(ID_Line, &CMy1900402213View::OnLine)
ON_COMMAND(ID_SQUARE, &CMy1900402213View::OnSquare)
ON_COMMAND(ID_CIRCLE, &CMy1900402213View::OnCircle)
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_MOUSEMOVE()
ON_COMMAND(ID_red_pen, &CMy1900402213View::Onredpen)
ON_COMMAND(ID_yeollw_pen, &CMy1900402213View::Onyeollwpen)
ON_COMMAND(ID_blue_pen, &CMy1900402213View::Onbluepen)
ON_COMMAND(ID_black_pen, &CMy1900402213View::Onblackpen)
ON_COMMAND(ID_green_pen, &CMy1900402213View::Ongreenpen)
ON_COMMAND(ID_full_line, &CMy1900402213View::Onfullline)
ON_COMMAND(ID_ima_line, &CMy1900402213View::Onimaline)
END_MESSAGE_MAP()
// CMy1900402213View 构造/析构
CMy1900402213View::CMy1900402213View() noexcept
{
// TODO: 在此处添加构造代码
m_CurPline = NULL;
type = 0;
go = false;
start = false;
Node* FST = new Node;
FST->num = 1;
m_line_list.InputFront(FST);
what_RGB = 0;
what_line = 1;
}
CMy1900402213View::~CMy1900402213View()
{
}
BOOL CMy1900402213View::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: 在此处通过修改
// CREATESTRUCT cs 来修改窗口类或样式
return CView::PreCreateWindow(cs);
}
// CMy1900402213View 绘图
void CMy1900402213View::OnDraw(CDC* pDC)
{
CMy1900402213Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: 在此处为本机数据添加绘制代码
int i,j;
j = m_line_list.Length();
if (m_line_list.IsEmpty() == false)
{
for(i=0;i<j+1;i++)
{
CDC* pDC = GetDC();
pDC->SelectStockObject(NULL_BRUSH);
Node* paint;
paint=m_line_list.Locate(i);
if (paint->now_line == 1)
{
if (paint->now_RGB == 1)
{
CPen pen(PS_SOLID, 1, RGB(255, 0, 0));
CPen* pOldPen = (CPen*)pDC->SelectObject(&pen);
if (paint->now_type == 1)
{
((CLine*)paint->data)->Draw(pDC);
}
if (paint->now_type == 2)
{
((CQuare*)paint->data)->Draw(pDC);
}
if (paint->now_type == 3)
{
((CCircle*)paint->data)->Draw(pDC);
}
}
if (paint->now_RGB == 2)
{
CPen pen(PS_SOLID, 1, RGB(0, 255, 0));
CPen* pOldPen = (CPen*)pDC->SelectObject(&pen);
if (paint->now_type == 1)
{
((CLine*)paint->data)->Draw(pDC);
}
if (paint->now_type == 2)
{
((CQuare*)paint->data)->Draw(pDC);
}
if (paint->now_type == 3)
{
((CCircle*)paint->data)->Draw(pDC);
}
}
if (paint->now_RGB == 3)
{
CPen pen(PS_SOLID, 1, RGB(0, 0, 255));
CPen* pOldPen = (CPen*)pDC->SelectObject(&pen);
if (paint->now_type == 1)
{
((CLine*)paint->data)->Draw(pDC);
}
if (paint->now_type == 2)
{
((CQuare*)paint->data)->Draw(pDC);
}
if (paint->now_type == 3)
{
((CCircle*)paint->data)->Draw(pDC);
}
}
if (paint->now_RGB == 0)
{
if (paint->now_type == 1)
{
((CLine*)paint->data)->Draw(pDC);
}
if (paint->now_type == 2)
{
((CQuare*)paint->data)->Draw(pDC);
}
if (paint->now_type == 3)
{
((CCircle*)paint->data)->Draw(pDC);
}
}
}
if (paint->now_line == 0)
{
if (paint->now_RGB == 1)
{
CPen pen(PS_DOT, 1, RGB(255, 0, 0));
CPen* pOldPen = (CPen*)pDC->SelectObject(&pen);
if (paint->now_type == 1)
{
((CLine*)paint->data)->Draw(pDC);
}
if (paint->now_type == 2)
{
((CQuare*)paint->data)->Draw(pDC);
}
if (paint->now_type == 3)
{
((CCircle*)paint->data)->Draw(pDC);
}
}
if (paint->now_RGB == 2)
{
CPen pen(PS_DOT, 1, RGB(0, 255, 0));
CPen* pOldPen = (CPen*)pDC->SelectObject(&pen);
if (paint->now_type == 1)
{
((CLine*)paint->data)->Draw(pDC);
}
if (paint->now_type == 2)
{
((CQuare*)paint->data)->Draw(pDC);
}
if (paint->now_type == 3)
{
((CCircle*)paint->data)->Draw(pDC);
}
}
if (paint->now_RGB == 3)
{
CPen pen(PS_DOT, 1, RGB(0, 0, 255));
CPen* pOldPen = (CPen*)pDC->SelectObject(&pen);
if (paint->now_type == 1)
{
((CLine*)paint->data)->Draw(pDC);
}
if (paint->now_type == 2)
{
((CQuare*)paint->data)->Draw(pDC);
}
if (paint->now_type == 3)
{
((CCircle*)paint->data)->Draw(pDC);
}
}
if (paint->now_RGB == 0)
{
CPen pen(PS_DOT, 1, RGB(0, 0, 0));
CPen* pOldPen = (CPen*)pDC->SelectObject(&pen);
if (paint->now_type == 1)
{
((CLine*)paint->data)->Draw(pDC);
}
if (paint->now_type == 2)
{
((CQuare*)paint->data)->Draw(pDC);
}
if (paint->now_type == 3)
{
((CCircle*)paint->data)->Draw(pDC);
}
}
}
ReleaseDC(pDC);
}
}
}
// CMy1900402213View 打印
void CMy1900402213View::OnFilePrintPreview()
{
#ifndef SHARED_HANDLERS
AFXPrintPreview(this);
#endif
}
BOOL CMy1900402213View::OnPreparePrinting(CPrintInfo* pInfo)
{
// 默认准备
return DoPreparePrinting(pInfo);
}
void CMy1900402213View::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: 添加额外的打印前进行的初始化过程
}
void CMy1900402213View::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: 添加打印后进行的清理过程
}
void CMy1900402213View::OnRButtonUp(UINT /* nFlags */, CPoint point)
{
ClientToScreen(&point);
OnContextMenu(this, point);
}
void CMy1900402213View::OnContextMenu(CWnd* /* pWnd */, CPoint point)
{
#ifndef SHARED_HANDLERS
theApp.GetContextMenuManager()->ShowPopupMenu(IDR_POPUP_EDIT, point.x, point.y, this, TRUE);
#endif
}
// CMy1900402213View 诊断
#ifdef _DEBUG
void CMy1900402213View::AssertValid() const
{
CView::AssertValid();
}
void CMy1900402213View::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
CMy1900402213Doc* CMy1900402213View::GetDocument() const // 非调试版本是内联的
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMy1900402213Doc)));
return (CMy1900402213Doc*)m_pDocument;
}
#endif //_DEBUG
// CMy1900402213View 消息处理程序
void CMy1900402213View::OnLine()
{
type = 1;
}
void CMy1900402213View::OnSquare()
{
type = 2;
}
void CMy1900402213View::OnCircle()
{
type = 3;
}
void CMy1900402213View::OnLButtonDown(UINT nFlags, CPoint point)
{
switch (type)
{
case 1:
{
m_pline = new CLine;
m_pline->Set_start_point(point);
}break;
case 2:
{
m_psquare = new CQuare;
m_psquare->Set_first_point(point);
}break;
case 3:
{
m_pcircle = new CCircle;
m_pcircle->Set_CenPoint(point);
}
break;
}
start = true;
CView::OnLButtonDown(nFlags, point);
}
void CMy1900402213View::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if (start==true)
{
Node* repaint = new Node;
switch (what_line)
{
case 1:
repaint->now_line = 1;
break;
ca
没有合适的资源?快使用搜索试试~ 我知道了~
使用MFC实现的绘图软件
共104个文件
h:18个
cpp:15个
obj:15个
5星 · 超过95%的资源 需积分: 0 143 下载量 171 浏览量
2020-12-26
13:55:54
上传
评论 6
收藏 71.34MB ZIP 举报
温馨提示
使用MFC实现的绘图软件
资源详情
资源评论
资源推荐
收起资源包目录
使用MFC实现的绘图软件 (104个子文件)
My1900402213.aps 177KB
userimages.bmp 8KB
Toolbar256.bmp 8KB
menuimages_hc.bmp 6KB
classview_hc.bmp 5KB
properties_hc.bmp 3KB
fileview_hc.bmp 2KB
sort_hc.bmp 1KB
menuimages.bmp 1KB
Toolbar.bmp 1KB
classview.bmp 958B
explorer_hc.bmp 776B
properties.bmp 598B
fileview.bmp 478B
sort.bmp 358B
explorer.bmp 238B
1900402213View.cpp 16KB
MainFrm.cpp 13KB
ClassView.cpp 9KB
PropertiesWnd.cpp 9KB
FileView.cpp 7KB
1900402213.cpp 6KB
OutputWnd.cpp 5KB
1900402213Doc.cpp 3KB
CSlist.cpp 2KB
ViewTree.cpp 921B
CQuare.cpp 570B
CCircle.cpp 542B
CLine.cpp 304B
pch.cpp 158B
Ctaskbar.cpp 41B
Browse.VC.db 72.05MB
Browse.VC.db 68.82MB
cslist.obj.enc 65KB
1900402213.exe 551KB
1900402213.vcxproj.filters 6KB
resource.h 5KB
1900402213View.h 2KB
MainFrm.h 2KB
framework.h 2KB
PropertiesWnd.h 1KB
ClassView.h 1KB
FileView.h 1KB
OutputWnd.h 1KB
1900402213Doc.h 938B
1900402213.h 729B
CSlist.h 669B
pch.h 544B
ViewTree.h 392B
CQuare.h 300B
targetver.h 299B
CLine.h 226B
CCircle.h 216B
Ctaskbar.h 0B
1900402213.ico 66KB
1900402213Doc.ico 5KB
class_view_hc.ico 2KB
file_view_hc.ico 2KB
properties_wnd_hc.ico 2KB
output_wnd_hc.ico 2KB
output_wnd.ico 1KB
file_view.ico 1KB
class_view.ico 1KB
properties_wnd.ico 1KB
vc142.idb 1.53MB
1900402213.ilk 4.29MB
1900402213.lastbuildstate 171B
1900402213.log 513B
pch.obj 733KB
ClassView.obj 325KB
PropertiesWnd.obj 320KB
FileView.obj 243KB
OutputWnd.obj 186KB
MainFrm.obj 183KB
1900402213View.obj 133KB
1900402213Doc.obj 118KB
1900402213.obj 113KB
CSlist.obj 65KB
ViewTree.obj 28KB
CCircle.obj 12KB
CLine.obj 11KB
CQuare.obj 11KB
Ctaskbar.obj 6KB
1900402213.pch 55.56MB
vc142.pdb 7.38MB
1900402213.pdb 2.79MB
My1900402213.rc 35KB
My1900402213.rc2 680B
1900402213.exe.recipe 309B
My1900402213.res 122KB
1900402213.sln 1KB
.suo 27KB
.suo 26KB
CL.read.1.tlog 292KB
CL.write.1.tlog 35KB
CL.command.1.tlog 24KB
link.read.1.tlog 19KB
rc.read.1.tlog 13KB
link.command.1.tlog 8KB
link.write.1.tlog 5KB
共 104 条
- 1
- 2
asfdadhakqrklad
- 粉丝: 29
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1