Documentクラスへの書き込み

変数の宣言と初期化 次の変数が必要となる。
m_lineIndex 直線の本数
m_points[100][2] 直線の頂点の座標
counter 直線の開始時点で値が 0, 直線の終了時点で値 1

但し、座標が m_points[i][0] の点と座標が m_points[i][1] の点を結んで i 番目の直線ができるものとする。

Document クラス、View クラスのいずれにも宣言することができる。但し、どちらからもアクセスできるように、public で宣言する必要がある。ここでは Document クラスで宣言することにする。Fileタブ $ \rightarrow$Header Files $ \rightarrow$ line1Doc.h に次のような書き込みをする。

class CLine1Doc : public CDocument
{
protected: // シリアライズ機能のみから作成します。
CLine1Doc();
DECLARE_DYNCREATE(CLine1Doc)
// アトリビュート
public:
int counter;
int m_lineIndex;
CPoint m_points[100][2];

CPoint は点の座標を表すための構造体で、点 m_points[i][j] の表す x 座標、y 座標は

m_points[i][j].x
m_points[i][j].y

によってアクセスすることができる。x 座標、y 座標共に 整数型である。 Document クラスが構築されるときに、変数を初期化する必要がある。そのために。Fileタブ $ \rightarrow$Source Files $ \rightarrow$ line1Doc.cpp に次のような書き込みをする。この箇所はクラスのコンストラクターと呼ばれクラスが構築されるときに必ず一回実行される。

/////////////////////////////////////////////////////////
// CLine1Doc クラスの構築/消滅
CLine1Doc::CLine1Doc()
{
// TODO: この位置に1回だけ構築用のコードを追加してください。
counter = 0;
m_lineIndex = 0;
}

また実行時のメニューの『ファイル/新規』で初期状態に戻すために lineDoc.cpp に次のような書き込みをします。

BOOL CLine1Doc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
// TODO: この位置に再初期化処理を追加してください。
// (SDI ドキュメントはこのドキュメントを再利用します。)
counter = 0;
m_lineIndex = 0;
return TRUE;
}