| | | 用VC实现小型矢量图形系统的开发 | | 2001-12-05·
·曹勇刚··yesky
| 上一页 1 2 3 4 5 6 下一页 1. 基于文档-视图结构的类
在图1可以看到,本软件是基于多文档界面(MDI)的。由AppWizard选取多文档界面后,它会帮助我们生成基本的基于文档-视图结构的类。本软件使用DrawGraph为应用程序名,故有以下类:CMainFrame,CChildFrame,CDrawGraphApp,CDrawGraphDoc ,CDrawGraphView。
其中:CDrawGraphApp(以后我用是应用程序类,支持应用程序的建立和基本交互,我们可以不必改它。CChildFrame类是视图文档的容器,除了在显示图标上的定制外,我们也可以不修改它。
CMainFrame,CDrawGraphDoc ,CDrawGraphView用于分别实现主窗口、文档、视图的功能。
1). 主窗口(CMainFrame)主要需要定制图标、工具条的建立、显示和交互。下面是类的定义,阴影部分是自己定制的(非AppWizard自动生成)
class CMainFrame : public CMDIFrameWnd
{
DECLARE_DYNAMIC(CMainFrame)//支持动态建立
public:
CMainFrame();
// Attributes
public:
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMainFrame)
public:
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
//}}AFX_VIRTUAL
// Implementation
public:
int m_Depth;//立体深度
COLORREF m_fillcolor;//填充色
COLORREF m_pencolor;//边框色
LOGFONT m_font;//字体
int m_penstyle;//线型
UINT m_penwidth;//笔宽
void SaveToReg();//记录退出前的窗口状态
void ReadFromReg();//读取退出前的窗口状态
objecttype GetDrawType();//返回当前选中的绘图工具类别
virtual ~CMainFrame();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected: // control bar embedded members CStatusBar m_wndStatusBar;//状态栏
CReBar m_wndReBar;//标准栏和属性栏的容器工具条
CDialogBar m_wndDlgBar;//属性栏
CToolBar m_wndToolBar;//标准栏
CToolBar m_wndDrawTool;//绘图工具条
UINT objtype;//选中工具的ID号
// Generated message map functions
protected:
afx_msg void OnDropDown(NMHDR* pNotifyStruct,LRESULT* result);
//{{AFX_MSG(CMainFrame)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnShowdrawtool();//显隐工具条
afx_msg void OnUpdateShowdrawtool(CCmdUI* pCmdUI);
afx_msg void OnFont();
afx_msg void OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized);
afx_msg void OnColor();
afx_msg void OnUpdateColor(CCmdUI* pCmdUI);
afx_msg void OnFillcolor();
afx_msg void OnUpdateFillcolor(CCmdUI* pCmdUI);
//}}AFX_MSG
afx_msg void OnSelectTool(UINT ID);//选中工具
afx_msg void OnUpdateButtons(CCmdUI* pCmdUI);//处理按钮按下状态
afx_msg void onchangedpenwidth();
DECLARE_MESSAGE_MAP()
}; |
上一页 1 2 3 4 5 6 下一页 | | | 感谢
访问天极网,如果您觉得该文章涉及版权问题,请看这里!
|
|