Chapter 9 Strings Visual C++ and MFC Fundamentals
By the way, as you probably know already, you can change the dimensions of the
window with a code similar to the following:BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;// The new width of the window's frame
cs.cx = 450;
// The new height of the window's frame
cs.cy = 370;
// Remove the Untitled thing
cs.style &= ~FWS_ADDTOTITLE;return TRUE;
}Now that we know how to control the origin, we will position it at a fixed point, 320 units
to the right and 220 units down. We can also easily draw the (Cartesian) axes now:void CExoView::OnDraw(CDC* pDC)
{
CExoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);pDC->SetViewportOrg(220, 150);// Use a red pen
CPen PenRed(PS_SOLID, 1, RGB(255, 0, 0));
CPen *pOld = pDC->SelectObject(&PenRed);// A circle whose center is at the origin (0, 0)
pDC->Ellipse(-100, -100, 100, 100);// Use a blue pen
CPen PenBlue(PS_SOLID, 1, RGB(0, 0, 255));
pOld = pDC->SelectObject(&PenBlue);// Horizontal axis
pDC->MoveTo(-320, 0);
pDC->LineTo( 320, 0);
// Vertical axis
pDC->MoveTo( 0, -220);
pDC->LineTo( 0, 220);pDC->SelectObject(pOld);
}