OnDraw



  • HI

    Ich versuche ien koordinatensystem zu zeichnen aber es funktioniert leider nicht.

    Die Definition des Zeichenbereiches:

    void CMdipgenView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo) 
    {
    	// TODO: Add your specialized code here and/or call the base class
    
    	CRect clientRect;
    
    	pDC->SetMapMode (MM_ISOTROPIC);
    	pDC->SetWindowExt (13600, -10600);
    	pDC->SetWindowOrg (-300, 10300);
    	pDC->SetViewportExt (clientRect.right-clientRect.left, clientRect.bottom-clientRect.top);
    	pDC->SetViewportOrg (0, 0);
    
    	CView::OnPrepareDC(pDC, pInfo);
    }
    

    und das zeichnen selber:

    void CMdipgenView::OnDraw(CDC* pDC)
    {
    	CMdipgenDoc* pDoc = GetDocument();
    	ASSERT_VALID(pDoc);
    
    	CPen achsenPen (PS_SOLID, 1,RGB(0, 0, 0));
    	CPen *pOldPen;
    
    	//Zeichnen der Achsen + Pfeilen
    	pOldPen = pDC->SelectObject (&achsenPen);
    
    	pDC->MoveTo(0,10000);
    	pDC->LineTo(0,0);
    	pDC->LineTo(10000,0);
    
    	pDC->SelectObject (pOldPen);
    
    }
    

    Wo ist da der Hund begraben??



  • Gegenfrage: Wie äußert sich diese "funktioniert nicht"?



  • Es wir nichts gezeichnet die Zeichenfläche ist leer.



  • Ich vermute mal dein clientRect zeigt ins Nirvana. Ich sehe nirgends eine Initialisierung dessen.
    clientRect.SetRect(0,0,1000,1000);
    KÖNNTE helen.



  • CRect clientRect;
    this->GetClientRect(clientRect);
    

    Könnte auch helfen...

    Gruß



  • danke

    get Client Rect war die Lösung.

    Hatte ich vergessen.


Anmelden zum Antworten