質問: GetDocument(); //Docを使うために必要 ASSERT_VALID(pDoc); CPaintData PaintData; //このあたりからよくわからない PaintData.setCoodinateX(point.x); //setできてる模様? PaintData.setCoodinateY(point.y); //setできてる模様? PaintData.getCoodinateX(); //getできるけどVSで見るとm_arDataArrayに入っていない模様でどこからとってるのか謎 PaintData.getCoodinateY(); //getできてない? //ここでクリックが2回目なら、1回目を中心、2回目を外周のどこかとする円を書く処理にとばす //図形の個数をプラス1する pDoc->SetModifiedFlag(); //Docに保存 } } ``` CPaintDoc(今回は関係ないはずなので省略) 開発環境はwin7 64bit VS2010です。 よろしくおねがいいたします。
回答: 期待される解答とはちょっと違うかもしれませんが、現状であれば、MFC独自の CArray を使うよりは、標準ライブラリの std::vector を使うことを強くお薦めします。 その方が、情報も多いですし、普遍性が高いです。 具体的な使い方ですが、複数の座標値を管理したいのであれば、 ``` struct Pos { double m_x; double m_y; }; ``` のような構造体を作り、CPaintData のメンバ変数として、その動的配列を保持すればいいと思います。 ``` class CPaintData { private: std::vector m_posList; // 座標データたち }; ``` std::vector の使い方そのものは、手前味噌ですが C++ 動的配列クラス std::vector 入門 等を参照してください。