Hi,
I am trying to animate a car in a graphic scene. It was working but now i have lost that code. When it runs a window starts developing from right bottom of screen and captures my entire background graphics. Kindly solve this problem.
I am using Visual C 6.0 and windows 7.
// AnimationCarView.cpp : implementation of the CAnimationCarView class // #include "stdafx.h" #include "AnimationCar.h" #include "AnimationCarDoc.h" #include "AnimationCarView.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CAnimationCarView IMPLEMENT_DYNCREATE(CAnimationCarView, CView) BEGIN_MESSAGE_MAP(CAnimationCarView, CView) //{{AFX_MSG_MAP(CAnimationCarView) ON_WM_CREATE() ON_WM_TIMER() ON_WM_ERASEBKGND() //}}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() ///////////////////////////////////////////////////////////////////////////// // CAnimationCarView construction/destruction CAnimationCarView::CAnimationCarView() { // TODO: add construction code here i=150,j=190,k=145,l=140,m=138,n=195,o=197,p=170,q=148,r=185; penGrey.CreatePen(PS_SOLID, 5, RGB(128,128,128));//GREY color penLGrey.CreatePen(PS_SOLID,5, RGB(220,220,220));//LGREY color penBlack.CreatePen(PS_SOLID, 5, RGB(0,0,0)); pOldPen=NULL; brGrey.CreateSolidBrush(RGB(128, 128, 128)); brLGrey.CreateSolidBrush(RGB(220,220,220)); brBlack.CreateSolidBrush(RGB(0, 0, 0)); pOldBrush=NULL; } CAnimationCarView::~CAnimationCarView() { } BOOL CAnimationCarView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs return CView::PreCreateWindow(cs); } ///////////////////////////////////////////////////////////////////////////// // CAnimationCarView drawing void CAnimationCarView::road(CDC* pDC){ CPoint poly6[8]={CPoint(0,400), CPoint(210,400),CPoint(210,440),CPoint(0,440)}; CPen pen(PS_SOLID, 5, RGB(220,220,220)); CPen* pOldPen=NULL; pOldPen=pDC->SelectObject(&pen); CBrush br(RGB(220, 220, 220)); CBrush* pOldBrush=NULL; pOldBrush=pDC->SelectObject(&br); pDC->Polygon(poly6, 4); pDC->SelectObject(pOldBrush); pDC->SelectObject(pOldPen); } void CAnimationCarView::mountain(CDC* pDC) { //setcolor(BROWN); CPen penBrown(PS_SOLID, 5, RGB(150,75,0)); CPen* pOldPen=NULL; pOldPen=pDC->SelectObject(&penBrown); //line(0,250,700,250); pDC->MoveTo(0,250); pDC->LineTo(700,250); //line(0,250,0,160); pDC->MoveTo(0,250); pDC->LineTo(0,160); //line(0,160,30,200); pDC->MoveTo(0,160); pDC->LineTo(30,200); //line(30,200,80,120); pDC->MoveTo(30,200); pDC->LineTo(80,120); //arc(90,124,30,150,10); pDC->AngleArc(90,124,10,30,150); //line(99,119,150,180); pDC->MoveTo(99,119); pDC->LineTo(150,180); //line(150,180,220,100); pDC->MoveTo(150,180); pDC->LineTo(220,100); //arc(234,106,30,150,15); pDC->AngleArc(234,106,15,30,150); //line(248,99,320,200); pDC->MoveTo(248,99); pDC->LineTo(320,200); //line(320,200,370,125); pDC->MoveTo(320,200); pDC->LineTo(370,125); //arc(380,129,30,150,10); pDC->AngleArc(380,129,10,30,150); //line(389,124,430,180); pDC->MoveTo(389,124); pDC->LineTo(430,180); //line(430,180,505,90); pDC->MoveTo(430,180); pDC->LineTo(505,90); //arc(519,96,30,150,15); pDC->AngleArc(519,96,15,30,150); //line(533,89,605,200); pDC->MoveTo(533,89); pDC->LineTo(605,200); //line(605,200,700,110); pDC->MoveTo(605,200); pDC->LineTo(700,170); //line(700,170,700,250); pDC->MoveTo(700,170); pDC->LineTo(700,250); CBrush brBrown(RGB(150, 75, 0)); CBrush* pOldBrush=NULL; pOldBrush=pDC->SelectObject(&brBrown); pDC->FloodFill(10,245,RGB(150,75,0)); pDC->SelectObject(pOldBrush); pDC->SelectObject(pOldPen); } void CAnimationCarView::stationary_car(CDC* pDC) { //int i=150,j=190,k=145,l=140,m=138,n=195,o=197,p=170,q=148,r=185; //CPen penGrey(PS_SOLID, 5, RGB(128,128,128));//GREY color CBitmap XMap,*pOldMap; CPen* pOldPen=NULL; pOldPen=pDC->SelectObject(&penGrey); SIZE Size; Size.cx = GetSystemMetrics(SM_CXSCREEN); Size.cy = GetSystemMetrics(SM_CYSCREEN); XMap.CreateCompatibleBitmap(pDC,Size.cx,Size.cy); CDC WorkDC; CDC *MyDC=&WorkDC; MyDC->CreateCompatibleDC(pDC); pOldMap=MyDC->SelectObject(&XMap); //line(i,402,j,402); MyDC->MoveTo(i,402); MyDC->LineTo(j,402); //line(j,415,k,415); MyDC->MoveTo(j,415); MyDC->LineTo(k,415); //line(j,402,j,415); MyDC->MoveTo(j,402); MyDC->LineTo(j,415); //line(k,415,i,402); MyDC->MoveTo(k,415); MyDC->LineTo(i,402); //setfillstyle(SOLID_FILL,6); //CBrush brGrey(RGB(128, 128, 128)); CBrush* pOldBrush=NULL; //floodfill(p,408,6); //NOTE IF FloodFill done after select object, color mixing would occur pOldBrush=MyDC->SelectObject(&brGrey); MyDC->FloodFill(p,408,RGB(128,128,128)); //line(n,415,o,428); MyDC->MoveTo(n,415); MyDC->LineTo(o,428); //line(l,415,m,428); MyDC->MoveTo(l,415); MyDC->LineTo(m,428); //line(l,415,n,415); MyDC->MoveTo(l,415); MyDC->LineTo(n,415); //line(o,428,m,428); MyDC->MoveTo(o,428); MyDC->LineTo(m,428); //setfillstyle(SOLID_FILL,6); //floodfill(p,422,6); MyDC->FloodFill(p,422,RGB(128,128,128)); MyDC->SelectObject(pOldBrush); MyDC->SelectObject(pOldPen); //Drawing wheels //circle(q,434,5); CBrush brBlack(RGB(0, 0, 0)); pOldBrush=NULL; pOldBrush=MyDC->SelectObject(&brBlack); //CPen penBlack(PS_SOLID, 5, RGB(0,0,0));//Black color pOldPen=NULL; pOldPen=MyDC->SelectObject(&penBlack); MyDC->MoveTo(r,434); MyDC->AngleArc(q,434,5,0,360); MyDC->FloodFill(q,434,RGB(0,0,0)); //circle(r,434,5); MyDC->AngleArc(r,434,5,0,360); pDC->BitBlt(j,k,Size.cx,Size.cy,MyDC,0,0,SRCCOPY); MyDC->SelectObject(pOldPen); MyDC->SelectObject(pOldBrush); MyDC->SelectObject(pOldMap); XMap.DeleteObject(); MyDC->DeleteDC(); } void CAnimationCarView::OnDraw(CDC* pDC) { CAnimationCarDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here CBitmap XMap,*pOldMap; CRect rc; GetClientRect(&rc); XMap.CreateCompatibleBitmap(pDC,rc.Width(), rc.Height()); CDC WorkDC; CDC *MyDC=&WorkDC; MyDC->CreateCompatibleDC(pDC); pOldMap=MyDC->SelectObject(&XMap); road(MyDC); mountain(MyDC); stationary_car(MyDC); pDC->BitBlt(0, 0, rc.Width(), rc.Height(), MyDC, 0, 0, SRCCOPY); MyDC->SelectObject(pOldMap); XMap.DeleteObject(); MyDC->DeleteDC(); } ///////////////////////////////////////////////////////////////////////////// // CAnimationCarView printing BOOL CAnimationCarView::OnPreparePrinting(CPrintInfo* pInfo) { // default preparation return DoPreparePrinting(pInfo); } void CAnimationCarView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { // TODO: add extra initialization before printing } void CAnimationCarView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { // TODO: add cleanup after printing } ///////////////////////////////////////////////////////////////////////////// // CAnimationCarView diagnostics #ifdef _DEBUG void CAnimationCarView::AssertValid() const { CView::AssertValid(); } void CAnimationCarView::Dump(CDumpContext& dc) const { CView::Dump(dc); } CAnimationCarDoc* CAnimationCarView::GetDocument() // non-debug version is inline { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CAnimationCarDoc))); return (CAnimationCarDoc*)m_pDocument; } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CAnimationCarView message handlers /*void CTestG1View::mountain(CDC* pDC) { //setcolor(BROWN); CPen penBrown(PS_SOLID, 5, RGB(150,75,0)); CPen* pOldPen=NULL; pOldPen=pDC->SelectObject(&penBrown); //line(0,250,700,250); pDC->MoveTo(0,250); pDC->LineTo(700,250); //line(0,250,0,160); pDC->MoveTo(0,250); pDC->LineTo(0,160); //line(0,160,30,200); pDC->MoveTo(0,160); pDC->LineTo(30,200); //line(30,200,80,120); pDC->MoveTo(30,200); pDC->LineTo(80,120); //arc(90,124,30,150,10); pDC->AngleArc(90,124,10,30,150); //line(99,119,150,180); pDC->MoveTo(99,119); pDC->LineTo(150,180); //line(150,180,220,100); pDC->MoveTo(150,180); pDC->LineTo(220,100); //arc(234,106,30,150,15); pDC->AngleArc(234,106,15,30,150); //line(248,99,320,200); pDC->MoveTo(248,99); pDC->LineTo(320,200); //line(320,200,370,125); pDC->MoveTo(320,200); pDC->LineTo(370,125); //arc(380,129,30,150,10); pDC->AngleArc(380,129,10,30,150); //line(389,124,430,180); pDC->MoveTo(389,124); pDC->LineTo(430,180); //line(430,180,505,90); pDC->MoveTo(430,180); pDC->LineTo(505,90); //arc(519,96,30,150,15); pDC->AngleArc(519,96,15,30,150); //line(533,89,605,200); pDC->MoveTo(533,89); pDC->LineTo(605,200); //line(605,200,700,110); pDC->MoveTo(605,200); pDC->LineTo(700,170); //line(700,170,700,250); pDC->MoveTo(700,170); pDC->LineTo(700,250); CBrush brBrown(RGB(150, 75, 0)); CBrush* pOldBrush=NULL; pOldBrush=pDC->SelectObject(&brBrown); pDC->FloodFill(10,245,RGB(150,75,0)); pDC->SelectObject(pOldBrush); pDC->SelectObject(pOldPen); } CTestG1View::CTestG1View() { // TODO: add construction code here i=150,j=190,k=145,l=140,m=138,n=195,o=197,p=170,q=148,r=185; penGrey.CreatePen(PS_SOLID, 5, RGB(128,128,128));//GREY color penLGrey.CreatePen(PS_SOLID,5, RGB(220,220,220));//LGREY color penBlack.CreatePen(PS_SOLID, 5, RGB(0,0,0)); pOldPen=NULL; brGrey.CreateSolidBrush(RGB(128, 128, 128)); brLGrey.CreateSolidBrush(RGB(220,220,220)); brBlack.CreateSolidBrush(RGB(0, 0, 0)); pOldBrush=NULL; } int CTestG1View::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CView::OnCreate(lpCreateStruct) == -1) return -1; //void (*p)(UINT); //p=&CTestG1View::OnTimer; SetTimer(1,200,NULL); // TODO: Add your specialized creation code here return 0; } void CTestG1View::OnTimer(UINT nIDEvent){ if(i>0){ i=i-3; Invalidate(); j=j-3;k=k-3;l=l-3;m=m-3;n=n-3;o=o-3;p=p-3;q=q-3;r=r-3; } } void CTestG1View::road(CDC* pDC){ CPoint poly6[8]={CPoint(0,400), CPoint(210,400),CPoint(210,440),CPoint(0,440)}; CPen pen(PS_SOLID, 5, RGB(220,220,220)); CPen* pOldPen=NULL; pOldPen=pDC->SelectObject(&pen); CBrush br(RGB(220, 220, 220)); CBrush* pOldBrush=NULL; pOldBrush=pDC->SelectObject(&br); pDC->Polygon(poly6, 4); pDC->SelectObject(pOldBrush); pDC->SelectObject(pOldPen); } void CTestG1View::stationary_car(CDC* pDC) { //int i=150,j=190,k=145,l=140,m=138,n=195,o=197,p=170,q=148,r=185; //CPen penGrey(PS_SOLID, 5, RGB(128,128,128));//GREY color CBitmap XMap,*pOldMap; CPen* pOldPen=NULL; pOldPen=pDC->SelectObject(&penGrey); SIZE Size; Size.cx = GetSystemMetrics(SM_CXSCREEN); Size.cy = GetSystemMetrics(SM_CYSCREEN); XMap.CreateCompatibleBitmap(pDC,Size.cx,Size.cy); CDC WorkDC; CDC *MyDC=&WorkDC; MyDC->CreateCompatibleDC(pDC); pOldMap=MyDC->SelectObject(&XMap); //line(i,402,j,402); MyDC->MoveTo(i,402); MyDC->LineTo(j,402); //line(j,415,k,415); MyDC->MoveTo(j,415); MyDC->LineTo(k,415); //line(j,402,j,415); MyDC->MoveTo(j,402); MyDC->LineTo(j,415); //line(k,415,i,402); MyDC->MoveTo(k,415); MyDC->LineTo(i,402); //setfillstyle(SOLID_FILL,6); //CBrush brGrey(RGB(128, 128, 128)); CBrush* pOldBrush=NULL; //floodfill(p,408,6); //NOTE IF FloodFill done after select object, color mixing would occur pOldBrush=MyDC->SelectObject(&brGrey); MyDC->FloodFill(p,408,RGB(128,128,128)); //line(n,415,o,428); MyDC->MoveTo(n,415); MyDC->LineTo(o,428); //line(l,415,m,428); MyDC->MoveTo(l,415); MyDC->LineTo(m,428); //line(l,415,n,415); MyDC->MoveTo(l,415); MyDC->LineTo(n,415); //line(o,428,m,428); MyDC->MoveTo(o,428); MyDC->LineTo(m,428); //setfillstyle(SOLID_FILL,6); //floodfill(p,422,6); MyDC->FloodFill(p,422,RGB(128,128,128)); MyDC->SelectObject(pOldBrush); MyDC->SelectObject(pOldPen); //Drawing wheels //circle(q,434,5); CBrush brBlack(RGB(0, 0, 0)); pOldBrush=NULL; pOldBrush=MyDC->SelectObject(&brBlack); //CPen penBlack(PS_SOLID, 5, RGB(0,0,0));//Black color pOldPen=NULL; pOldPen=MyDC->SelectObject(&penBlack); MyDC->MoveTo(r,434); MyDC->AngleArc(q,434,5,0,360); MyDC->FloodFill(q,434,RGB(0,0,0)); //circle(r,434,5); MyDC->AngleArc(r,434,5,0,360); pDC->BitBlt(j,k,Size.cx,Size.cy,MyDC,0,0,SRCCOPY); MyDC->SelectObject(pOldPen); MyDC->SelectObject(pOldBrush); MyDC->SelectObject(pOldMap); XMap.DeleteObject(); MyDC->DeleteDC(); } void CTestG1View::OnDraw(CDC* pDC) { CTestG1Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; road(pDC); mountain(pDC); stationary_car(pDC); //moving_car(pDC); // TODO: add draw code for native data here } */ BOOL CAnimationCarView::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) { // TODO: Add your specialized code here and/or call the base class //SetTimer(1,200,NULL); return CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext); } int CAnimationCarView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CView::OnCreate(lpCreateStruct) == -1) return -1; SetTimer(1,200,NULL); // TODO: Add your specialized creation code here return 0; } void CAnimationCarView::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default if(i>0){ i=i-3; Invalidate(); j=j-3;k=k-3;l=l-3;m=m-3;n=n-3;o=o-3;p=p-3;q=q-3;r=r-3; } CView::OnTimer(nIDEvent); } BOOL CAnimationCarView::OnEraseBkgnd(CDC* pDC) { // TODO: Add your message handler code here and/or call default return TRUE; return CView::OnEraseBkgnd(pDC); } //Header file // AnimationCarView.h : interface of the CAnimationCarView class // ///////////////////////////////////////////////////////////////////////////// #if !defined(AFX_ANIMATIONCARVIEW_H__868E797E_E1BA_48B0_BA06_C84A7591A32B__INCLUDED_) #define AFX_ANIMATIONCARVIEW_H__868E797E_E1BA_48B0_BA06_C84A7591A32B__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 class CAnimationCarView : public CView { protected: // create from serialization only CAnimationCarView(); DECLARE_DYNCREATE(CAnimationCarView) // Attributes public: CAnimationCarDoc* GetDocument(); // Operations public: void mountain(CDC*); void road(CDC* pDC); void stationary_car(CDC* pDC); int i,j,k,l,m,n,o,p,q,r; CPen penGrey, penLGrey, penBlack; CPen *pOldPen; CBrush brGrey, brLGrey, brBlack; CBrush* pOldBrush; // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CAnimationCarView) public: virtual void OnDraw(CDC* pDC); // overridden to draw this view virtual BOOL PreCreateWindow(CREATESTRUCT& cs); virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL); protected: virtual BOOL OnPreparePrinting(CPrintInfo* pInfo); virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo); virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo); //}}AFX_VIRTUAL // Implementation public: virtual ~CAnimationCarView(); #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif protected: // Generated message map functions protected: //{{AFX_MSG(CAnimationCarView) afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg void OnTimer(UINT nIDEvent); afx_msg BOOL OnEraseBkgnd(CDC* pDC); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; #ifndef _DEBUG // debug version in AnimationCarView.cpp inline CAnimationCarDoc* CAnimationCarView::GetDocument() { return (CAnimationCarDoc*)m_pDocument; } #endif ///////////////////////////////////////////////////////////////////////////// //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_ANIMATIONCARVIEW_H__868E797E_E1BA_48B0_BA06_C84A7591A32B__INCLUDED_)
Kindly guide me.
Zulfi.