Forudsat din variabel hedder: CPoint pt[10]; ///////////////////////////////////////////////////////////////////////////// // CSerializeDoc serialization
void CSerializeDoc::Serialize(CArchive& ar) { if (ar.IsStoring()) { // TODO: add storing code here for (int i=0; i<10; ++i) ar << pt[i]; } else { // TODO: add loading code here for (int i=0; i<10; ++i) ar >> pt[i]; } }
Fra klasse CFreedraw som er nedarvet fra cfigure: CFigure::Serialize(ar); pointlist.Serialize(ar);
alle andre figure virker fint, altså line, circle osv. da de bare er nedarvet fra cfigure, og har ikke en liste i sig selv som cfreedraw har
i CFreedraw listen gemmes der Cpoint void CFreedraw::AddNode(CPoint* point) { static int inttest=0; inttest++; CString test; test.Format("%d \n",inttest); TRACE(LPCTSTR(test)); pointlist.AddTail(point); } problemet opstår når den gentegner udfra listen vises alt underligt på skærmen: altså det der er tegnet med freedraw
Skal du ikke serialize hver enkelt element i listen?
altså: CPOint pt; //... POSITION pos = pointlist.GetHeadPosition(); while(pos != NULL) { pt = pointlist.GetAt(pos); ar << pt; }
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.