Click here to Skip to main content
15,891,657 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
AnswerRe: How to compute Islamic prayer time everyday? Pin
fantasy12153-Mar-10 16:23
fantasy12153-Mar-10 16:23 
GeneralRe: How to compute Islamic prayer time everyday? Pin
Game-point3-Mar-10 19:05
Game-point3-Mar-10 19:05 
QuestionMFC Drag & Drop Between two Tree control [modified] Pin
vkpMark2-Mar-10 20:39
vkpMark2-Mar-10 20:39 
AnswerRe: MFC Drag & Drop Between two Tree control [modified] Pin
SandipG 2-Mar-10 21:14
SandipG 2-Mar-10 21:14 
GeneralRe: MFC Drag & Drop Between two Tree control Pin
vkpMark2-Mar-10 21:50
vkpMark2-Mar-10 21:50 
GeneralRe: MFC Drag & Drop Between two Tree control Pin
vkpMark3-Mar-10 0:37
vkpMark3-Mar-10 0:37 
QuestionwxWidgets and themes Pin
zqueezy2-Mar-10 19:50
zqueezy2-Mar-10 19:50 
QuestionHow To Serailize collection class object Pin
adityarao312-Mar-10 19:45
adityarao312-Mar-10 19:45 
I have simple CLine class which has two member variables
which store first and last point of line.I store set of drawn lines in CObArray .Now I want to save the set of lines which I have drawn on CView on save button. And Get All lines back
on open button click. Means serialize and deserialize in and out of
CObArray Collection class.

I have tried as shown in code. but I get no values where I have mentioned in code.Thus enable to retrieve the saved drawing.
Can any one help me on this issue?


// Serialization3View.cpp : implementation of the CSerialization3View class
//

#include "stdafx.h"
#include "Serialization3.h"

#include "Serialization3Doc.h"
#include "Serialization3View.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CSerialization3View

IMPLEMENT_DYNCREATE(CSerialization3View, CView)

BEGIN_MESSAGE_MAP(CSerialization3View, CView)
//{{AFX_MSG_MAP(CSerialization3View)
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_MOUSEMOVE()
ON_COMMAND(ID_FILE_SAVE, OnFileSave)
ON_COMMAND(ID_FILE_OPEN, OnFileOpen)
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSerialization3View construction/destruction

CSerialization3View::CSerialization3View()
{
// TODO: add construction code here

}

CSerialization3View::~CSerialization3View()
{
}

BOOL CSerialization3View::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs

return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CSerialization3View drawing

void CSerialization3View::OnDraw(CDC* pDC)
{
CSerialization3Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
int liCount = pDoc->GetLineCount();
if(liCount > 1)
{
int lipos;
CLine* l;
for(lipos = 0;lipos < liCount;lipos++)
{
l = pDoc->GetLine(lipos);
l->Draw(pDC);
}
}
// TODO: add draw code for native data here
}

/////////////////////////////////////////////////////////////////////////////
// CSerialization3View printing

BOOL CSerialization3View::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}

void CSerialization3View::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}

void CSerialization3View::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CSerialization3View diagnostics

#ifdef _DEBUG
void CSerialization3View::AssertValid() const
{
CView::AssertValid();
}

void CSerialization3View::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}

CSerialization3Doc* CSerialization3View::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CSerialization3Doc)));
return (CSerialization3Doc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CSerialization3View message handlers

void CSerialization3View::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
SetCapture();
m_ptPrevPos = point;

CView::OnLButtonDown(nFlags, point);
}

void CSerialization3View::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if(GetCapture() == this)
ReleaseCapture();
CView::OnLButtonUp(nFlags, point);
}

void CSerialization3View::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if((nFlags & MK_LBUTTON) == MK_LBUTTON)
{
if(GetCapture() == this)
{
CClientDC dc(this);
CLine *pLine =
GetDocument()->AddLine(m_ptPrevPos,point);
pLine->Draw(&dc);
m_ptPrevPos = point;
}
}
CView::OnMouseMove(nFlags, point);
}

void CSerialization3View::OnFileSave()
{
CSerialization3Doc* pDoc = GetDocument();
pDoc->fp.SeekToBegin();
CArchive ar(&(pDoc->fp),CArchive::store);
pDoc->m_oaLines.Serialize(ar);

}

void CSerialization3View::OnFileOpen()
{


CSerialization3Doc* pDoc = GetDocument();

pDoc->m_oaLines.RemoveAll();
RECT r;
GetWindowRect(&r);
InvalidateRect(&r,true);
pDoc->fp.SeekToBegin();
CArchive ar(&(pDoc->fp),CArchive::load);
pDoc->m2.Serialize(ar);
// here I expect that m2 obarray get all saved Lines
//but It does not happen.//
int liCount = pDoc->m2.GetSize();
if(liCount)
{
int lipos;
CLine* l;
for(lipos = 0;lipos < liCount;lipos++)
{

l = (CLine*)(pDoc->m2.GetAt(lipos));
//***************************************************
//But This does not work as l contains no values
CDC* dc = this->GetDC();
l->Draw(dc);
}
}

}
Be Happy

AnswerRe: How To Serailize collection class object Pin
Eugen Podsypalnikov2-Mar-10 20:41
Eugen Podsypalnikov2-Mar-10 20:41 
QuestionAT commands gives +CMS Error: 303 for Sony Ericssion Phones. Pin
Le@rner2-Mar-10 19:01
Le@rner2-Mar-10 19:01 
AnswerRe: AT commands gives +CMS Error: 303 for Sony Ericssion Phones. Pin
Roger Stoltz3-Mar-10 2:04
Roger Stoltz3-Mar-10 2:04 
GeneralRe: AT commands gives +CMS Error: 303 for Sony Ericssion Phones. Pin
Le@rner3-Mar-10 17:09
Le@rner3-Mar-10 17:09 
GeneralRe: AT commands gives +CMS Error: 303 for Sony Ericssion Phones. Pin
Roger Stoltz3-Mar-10 21:17
Roger Stoltz3-Mar-10 21:17 
QuestionHow do I create a child window? Pin
TTPadmin2-Mar-10 13:31
TTPadmin2-Mar-10 13:31 
AnswerRe: How do I create a child window? Pin
«_Superman_»2-Mar-10 14:00
professional«_Superman_»2-Mar-10 14:00 
AnswerRe: How do I create a child window? Pin
Stephen Hewitt2-Mar-10 21:07
Stephen Hewitt2-Mar-10 21:07 
Questionconverting .ico file to .png file Pin
johnalek2-Mar-10 11:36
johnalek2-Mar-10 11:36 
AnswerRe: converting .ico file to .png file Pin
Chris Losinger2-Mar-10 11:47
professionalChris Losinger2-Mar-10 11:47 
AnswerRe: converting .ico file to .png file Pin
TTPadmin2-Mar-10 13:28
TTPadmin2-Mar-10 13:28 
AnswerRe: converting .ico file to .png file Pin
BIJU Manjeri2-Mar-10 16:53
BIJU Manjeri2-Mar-10 16:53 
AnswerRe: converting .ico file to .png file Pin
Joe Woodbury3-Mar-10 5:25
professionalJoe Woodbury3-Mar-10 5:25 
QuestionHow to programmatically perform actions online? Pin
DanYELL2-Mar-10 11:02
DanYELL2-Mar-10 11:02 
AnswerRe: How to programmatically perform actions online? Pin
Richard Andrew x642-Mar-10 14:22
professionalRichard Andrew x642-Mar-10 14:22 
GeneralRe: How to programmatically perform actions online? Pin
DanYELL3-Mar-10 11:16
DanYELL3-Mar-10 11:16 
GeneralRe: How to programmatically perform actions online? Pin
Richard Andrew x643-Mar-10 11:34
professionalRichard Andrew x643-Mar-10 11:34 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.