?? painterview.h
字號:
// PainterView.h : interface of the CPainterView class
//
/////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_PAINTERVIEW_H__8316A581_527F_11D3_860D_9D4F82E55944__INCLUDED_)
#define AFX_PAINTERVIEW_H__8316A581_527F_11D3_860D_9D4F82E55944__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "IconSet.h"
class CPainterView : public CScrollView
{
protected: // create from serialization only
CPainterView();
DECLARE_DYNCREATE(CPainterView)
// Attributes
public:
CPainterDoc* GetDocument();
void Save();//處理文件保存
BOOL AddIcon();//處理數據庫記錄添加
CIconSet m_pSet;
void PickComponent(/*CDC *pDC*/);//拾取圖元
BOOL PickRectangle(RECTANGLENODE *rectanglenode);//檢查點是否在矩形內
BOOL PickEllipse(ELLIPSENODE *ellipsenode);//檢查點是否在橢圓內
BOOL PickLine(LINENODE *linenode);//檢查點是否在直線上
BOOL PickTriangle(RECT rect);//檢查點是否在三角形內
BOOL PickText(/*POINT point*/TEXTNODE *textnode);
void MoveCompent();//移動圖元
void DrawTriangle(CDC *pDC,RECT rect);//畫三角形
void UndoMove(MOVENODE *move);//重復/恢復移動
void UndoPaste(PASTENODE *paste);//重復/恢復粘貼
void UndoCut(CUTNODE *cut);//重復/恢復剪切
// Operations
public:
int ZoomFactor;
BOOL bFileSaved;//文件是否保存過
//填充方式
//當前畫刷顏色
COLORREF CurColor;
//畫刷填充形式
int hatchIndex;
//當前畫筆顏色,類型和寬度
COLORREF PenCurColor;
int penType;
int penWidth;
BYTE* DrawType;//當前繪圖種類
BOOL DrawStep;//當前繪圖步驟,0-未完成,1-完成
BOOL bShiftDown;//當前是否按下了Shift鍵,主要用以判斷是否多重選擇
CString fileName;//當前文件名
CString path;//當前文件路徑
//輸出文本
CString m_strText;
POINT PrePoint;//原先鼠標位置
POINT TempPoint;//暫存鼠標位置
BOOL m_bDel;//是否能夠刪除
BOOL m_bCopy;//是否能夠拷貝
BOOL m_bPaste;//是否能夠粘貼
BOOL m_bRedo;//是否能夠恢復
BOOL m_bUndo;//是否能夠撤消
BOOL m_IsSelected;//是否已經選擇圖元
BOOL m_bGrid;//是否繪網點
BOOL m_bNoTilt;//是否禁止繪制斜線
int OppIndex;//圖元索引
//處理編輯
BOOL m_bModify;//是否處于編輯狀態
BOOL m_bIsRect;
int m_nModifyIndex;//當前所調整的點索引
POINT *m_pModifyPoint;//當前所調整的點的坐標
POINT *m_pModifyPoints[4];
int *m_nSnapIndex;
int m_nModifyStep;
PENTYPE *m_ModifyPen;
CPtrList SnapList;//儲存當前被選圖元的坐標和索引的鏈表
void EnterModifyMode();
void LeaveModifyMode();
void DrawSnapPoint(CDC *dc,int index,/*CPoint point*/POINT *pPoints);
void DrawCurSnap();
void DrawSnapList();
void DrawModifyRec(CClientDC *DC);
void RectToPoints(RECT rect,POINT *point);
protected:
LINENODE *linenode; //直線圖元結構
RECTANGLENODE *rectanglenode; //矩形圖元結構
ELLIPSENODE *ellipsenode; //橢圓圖元結構
TRIANGLENODE *trianglenode; //三角形圖元結構
FILLNODE *fillnode; //填充圖元結構
TEXTNODE *textnode; //文本圖元結構
MOVENODE *movenode; //移動操作結構
PASTENODE *pastenode; //粘貼操作結構
CUTNODE *cutnode; //剪切操作結構
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CPainterView)
public:
virtual void OnDraw(CDC* pDC); // 處理重畫
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);//創建窗口
virtual void OnInitialUpdate();
protected:
virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CPainterView();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
// Generated message map functions
protected:
//{{AFX_MSG(CPainterView)
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);//按下鼠標左鍵消息處理函數
afx_msg void OnColor();//選擇填充顏色按鈕處理函數
afx_msg void OnPenColor();//選擇畫筆顏色按鈕處理函數
afx_msg void OnSelchangeLineWidth();//選擇線寬組合框消息處理函數
afx_msg void OnSelchangeLineType();//選擇線型組合框消息處理函數
afx_msg void OnSelchangeFillPattern();//選擇填充模式組合框信息處理函數
afx_msg void OnDrawLine();//繪制直線工具欄按鈕消息處理函數
afx_msg void OnDrawRectangle();//繪制矩形工具欄按鈕消息處理函數
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);//松開鼠標左鍵消息處理函數
afx_msg void OnMouseMove(UINT nFlags, CPoint point);//移動鼠標消息處理函數
afx_msg void OnDrawEllipse();//繪制橢圓工具欄按鈕消息處理函數
afx_msg void OnDrawFill();//繪制填充工具欄按鈕消息處理函數
afx_msg void OnDrawSelect();//選擇工具欄按鈕消息處理函數
afx_msg void OnModifyMove();//移動工具欄按鈕消息處理函數
afx_msg void OnUpdateEditDelete(CCmdUI* pCmdUI);//刪除工具欄按鈕更新處理函數
afx_msg void OnEditDelete();//刪除工具欄按鈕消息處理函數
afx_msg void OnEditCopy();//拷貝工具欄按鈕消息處理函數
afx_msg void OnUpdateEditCopy(CCmdUI* pCmdUI);//拷貝工具欄按鈕更新處理函數
afx_msg void OnEditPaste();//粘貼工具欄按鈕消息處理函數
afx_msg void OnUpdateEditPaste(CCmdUI* pCmdUI);//粘貼工具欄按鈕更新處理函數
afx_msg void OnEditCut();//剪切工具欄按鈕消息處理函數
afx_msg void OnUpdateEditCut(CCmdUI* pCmdUI);//剪切工具欄按鈕更新處理函數
afx_msg void OnEditRedo();//恢復工具欄按鈕消息處理函數
afx_msg void OnUpdateEditUndo(CCmdUI* pCmdUI);//恢復工具欄按鈕更新處理函數
afx_msg void OnUpdateEditRedo(CCmdUI* pCmdUI);//撤消工具欄按鈕更新處理函數
afx_msg void OnEditUndo();//撤消工具欄按鈕消息處理函數
afx_msg void OnDrawTriangle();//繪制三角形工具欄按鈕消息處理函數
afx_msg void OnText();//繪制文本工具欄按鈕消息處理函數
afx_msg void OnDestroy();//窗口銷毀消息處理
afx_msg void OnDrawGrid();//繪制網點工具欄按鈕消息處理函數
afx_msg void OnUpdateDrawGrid(CCmdUI* pCmdUI);//繪制網點工具欄按鈕更新處理函數
afx_msg void OnUpdateDrawFill(CCmdUI* pCmdUI);//填充工具欄按鈕更新處理函數
afx_msg void OnFileSave();//文件存儲消息處理函數
afx_msg void OnFileSaveAs();//文件另存為消息處理函數
afx_msg void OnFileOpen();//文件打開消息處理函數
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);//鍵盤按下消息處理函數
afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);//鍵盤松開消息處理函數
afx_msg void OnDrawNotilt();//禁止斜線工具欄按鈕消息處理函數
afx_msg void OnUpdateDrawNotilt(CCmdUI* pCmdUI);//禁止斜線工具欄按鈕更新處理函數
afx_msg void OnEnlarge();
afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
afx_msg void OnEditModify();
afx_msg void OnUpdateEditModify(CCmdUI* pCmdUI);
afx_msg void OnUpdateDrawEllipse(CCmdUI* pCmdUI);
afx_msg void OnUpdateDrawLine(CCmdUI* pCmdUI);
afx_msg void OnUpdateDrawRectangle(CCmdUI* pCmdUI);
afx_msg void OnUpdateDrawTriangle(CCmdUI* pCmdUI);
afx_msg void OnUpdateDrawSelect(CCmdUI* pCmdUI);
afx_msg void OnUpdateText(CCmdUI* pCmdUI);
afx_msg void OnUpdateModifyMove(CCmdUI* pCmdUI);
afx_msg void OnViewRatio100();
afx_msg void OnView100();
afx_msg void OnView200();
afx_msg void OnView25();
afx_msg void OnView50();
afx_msg void OnView75();
//}}AFX_MSG
afx_msg void DoNothing();
afx_msg void OnDropDown(NMHDR* pNotifyStruct, LRESULT* pResult);
DECLARE_MESSAGE_MAP()
};
#ifndef _DEBUG // debug version in PainterView.cpp
inline CPainterDoc* CPainterView::GetDocument()
{ return (CPainterDoc*)m_pDocument; }
#endif
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_PAINTERVIEW_H__8316A581_527F_11D3_860D_9D4F82E55944__INCLUDED_)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -