1. 接下来将展示Squres应用程序来说明单文档界面程序的编写:
1) 视图用来显示一个4×4的网格,初始化时每个网格都是白色的(即新建文档时);
2) 菜单栏中有一个Color子菜单,可以选择当前要填充的颜色,总共共有6中,而初始时默认将红色作为当前填充色;
3) 可以用鼠标点击网格中的格子,之后会用当前选中的填充色来填充选中的格子;
4) 程序文档的后缀是.sqr,里面就保存4×4网格中各个格子的颜色,以及当前选中的填充色;
2. 程序的创建:
1) 还是选择MFC[.exe]模板;
2) 第一步中选择Single document选项,并且要选中Document/View architecture support?复选框;
3) 而在第3步中的Advanced选项卡中填写默认的文件扩展名.sqr就行了(Wizzard会自动将该扩展名写入程序的字符串资源当中);
4) 由于程序简单,只需要修改Document类和View类即可;
3. CSquresDocument:
.h:
// SquresDoc.h : interface of the CSquresDoc class
//
/
#if !defined(AFX_SQURESDOC_H__29091B77_23ED_4908_817F_F58907F39F60__INCLUDED_)
#define AFX_SQURESDOC_H__29091B77_23ED_4908_817F_F58907F39F60__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CSquresDoc : public CDocument
{
protected: // create from serialization only
CSquresDoc();
DECLARE_DYNCREATE(CSquresDoc)
// Attributes
public:
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{
{AFX_VIRTUAL(CSquresDoc)
public:
virtual BOOL OnNewDocument();
virtual void Serialize(CArchive& ar);
//}}AFX_VIRTUAL
// Implementation
public:
COLORREF GetCurrentColor(); // 获取当前选中的颜色
void SetSquareColor(COLORREF color, int i, int j); // 修改某一网格的颜色
COLORREF GetSquareColor(int i, int j); // 获取某一网格的颜色
virtual ~CSquresDoc();
#ifdef _DEBUG
virtual void AssertValid() cons