📄 gdrawview.h
字号:
// GDrawView.h : CGDrawView 类的接口
//
#pragma once
#include"Graph_Union.h"
#include<list>
using namespace std;
class point{
public:
};
class CGDrawView : public CScrollView
{
protected: // 仅从序列化创建
CGDrawView();
DECLARE_DYNCREATE(CGDrawView)
// 属性
public:
CGDrawDoc* GetDocument() const;
list <Graph_Union> m_graphlist;
list<Graph_Union>::iterator m_ptrGL,gp,tmpgp,docgp,tmppre;
int m_LButton;
Pen pen;
Color color;
Color FillColor;
int LBDown,Move;
CPoint old_point,new_point,move_point;
Graph_Union gps;
void savebmp(CString filename);
void testdraw(CDC *pDC, CRect rcClient);
void show(CDC *pDC);
//CString test;
bool update; //是否要删除选中
int isupdate; //画画布
int select; //是否有选中
int hide; //属性框是否隐藏
int width;
int height;
bool choice;
BOOL isdraw;
int choicep_num;
BOOL editpnt;
int dline; //直线
BOOL click; //画线时第一次按下鼠标
CPoint click_down; //同上
CPoint tmp_point;
BOOL first_draw;
int click_flag;
int breakline;//画虚线
BOOL rail;
int ctl;
int type; //1是否为圆
CString m_csFileName;
COLORREF bg_color;//画布颜色
BOOL isset; //画布颜色是否设置
int whichshow;//0是画布属性,1是直线
//移动
CPoint start_point,end_point;//移动鼠标位置
void del(CDC * pDC,Graph_Union& gu) ;//删除选中的直线
void deletepoint(CDC *pDC, Graph_Union &gu);//选除选中的点
void init();//初始化
void SetBuf();
//-------------------------填 充-------------------
int fillset;
list<CPoint> ptr_point;
list<CPoint>::iterator fill_w;
CPoint *pnt;
int point_num;
CPoint fill_tmpPoint;
BOOL fill_choice;
void GetOutRect(CPoint *p,CPoint *pRect,int count);
void FillTra(bool ** p,CPoint p0,CPoint p1,CRect &rect,COLORREF fill_col);
void FillPoly_(CDC * pDC,CPoint *p,int count,COLORREF fill_col,COLORREF line_col);
void DrawLine(CDC *pDC,int bx,int by,int ex,int ey,COLORREF m_col,int lf);
void DrawLine(CDC *pDC,int bx,int by,int ex,int ey,COLORREF m_col,int lf,int size);
void DrawLine11(CDC *pDC,int bx,int by,int ex,int ey,COLORREF m_col,int lf);
void DrawLine11(CDC *pDC,int bx,int by,int ex,int ey,COLORREF m_col,int lf,int size);
BOOL settop;;
Graph_Union py;
int flag;
void FillPoly(CDC *pDC,CPoint *points,int num,COLORREF &fill_col,COLORREF &line_col,int size);
void DrawPoly(CDC *pDC,CPoint *points,int num,COLORREF &line_col,int lf,int size);
void GetSeed(CPoint *points,int num,CDC *pDC,int &x,int &y);
void re_fill(CDC * pDC,int x,int y,COLORREF line_col,COLORREF fill_col);
void SeedFillP(CDC *pDC,int x,int y,COLORREF &fill_col,COLORREF &line_col);
void DrawTracks(CDC *pDC,Point *p,int count,Color col1,Color col2);
void DrawBZ(CDC *pDC,Point *p,int count,Color col1,Color col2);
void DrawBSample(CDC *pDC,Point *p,int count,Color col1,Color col2);
//bool iscontain(CPoint pt, Poly_Union py0);
//--------------------------------------------------------
// 操作
public:
//画图需要的DC,开始结束坐标(bx,by)(ex,ey),颜色color,线形lf,线粗size
//void DrawLine(CDC * pDC,int bx,int by,int ex,int ey ,COLORREF m_col,int lf,int size);
void getrect(Point &b,Point &e,CPoint * p);
void ShowGraph(CDC* pDC);
void ShowGU(CDC *pDC,Graph_Union &gu);
void ShowGU(CDC * pDC,Graph_Union& gu,COLORREF col);
void drawcircle(CDC *pDC, int bx, int by, int br,COLORREF m_col,int size);
// 重写
public:
virtual void OnDraw(CDC* pDC); // 重写以绘制该视图
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
protected:
virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
// 实现
public:
virtual ~CGDrawView();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
// 生成的消息映射函数
protected:
DECLARE_MESSAGE_MAP()
public:
afx_msg void On32773();
public:
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
public:
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
public:
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
public:
afx_msg void OnSave();
public:
afx_msg void OnAllsave();
afx_msg void OnLine();
//填充---------------
public:
afx_msg void OnSetfil();
//--------------------------
afx_msg void OnCircle();
afx_msg void OnSelectGraph();
afx_msg void On_BreakLS();
public:
// virtual void Serialize(CArchive& ar);
public:
afx_msg void OnHide();
public:
afx_msg void OnUpdateHide(CCmdUI *pCmdUI);
public:
virtual void OnInitialUpdate();
public:
virtual void Serialize(CArchive& ar);
public:
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
protected:
virtual void OnUpdate(CScrollView* /*pSender*/, LPARAM /*lHint*/, CObject* /*pHint*/);
public:
afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
public:
afx_msg void On32775();
public:
afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
public:
afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
public:
afx_msg void OnRailway();
};
#ifndef _DEBUG // GDrawView.cpp 中的调试版本
inline CGDrawDoc* CGDrawView::GetDocument() const
{ return reinterpret_cast<CGDrawDoc*>(m_pDocument); }
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -