MFC Mapping Mode Example

////radiobutton demo
#include <afxwin.h>
class CMFCApp1 : public CWinApp
{
public:
BOOL InitInstance();
};

class CMainFrame : public CFrameWnd
{
public:
CMainFrame();
afx_msg void OnPaint();
DECLARE_MESSAGE_MAP()
};

BOOL CMFCApp1::InitInstance()
{
m_pMainWnd = new CMainFrame();
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
}

CMainFrame::CMainFrame()
{
Create(NULL, "MFC Mapping mode demo");
CClientDC dc(this);
}

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
ON_WM_PAINT()
END_MESSAGE_MAP()

afx_msg void CMainFrame::OnPaint()
{
CPaintDC dc(this);
CRect rect;
GetClientRect (&rect);
//draw rectangle with default pen
dc.Rectangle (100, 100, 300, 300);
//draw rectangle with red pen using mapping mode MM_HIMETRIC
CPen linecolour;
linecolour.CreatePen(PS_SOLID,1,RGB(255, 0, 0));
dc.SelectObject(linecolour);
dc.SetMapMode (MM_HIMETRIC);
dc.Rectangle (100, -100, 300, -300);
DeleteObject(linecolour);
//draw rectangle with blue pen using mapping mode MM_LOMETRIC
CPen linecolour1;
linecolour1.CreatePen(PS_SOLID,1,RGB(0, 0, 255));
dc.SelectObject(linecolour1);
dc.SetMapMode (MM_LOMETRIC);
dc.Rectangle (100, -100, 300, -300);
DeleteObject(linecolour1);
//draw rectangle with purple pen using mapping mode MM_LOENGLISH
dc.SetMapMode (MM_LOENGLISH);
CPen linecolour2;
linecolour2.CreatePen(PS_SOLID,1,RGB(255, 0, 255));
dc.SelectObject(linecolour2);
dc.Rectangle (100, -100, 300, -300);
DeleteObject(linecolour2);
//draw rectangle with blue pen using and PS_DASH pen style using mapping mode MM_ANISOTROPIC
dc.SetMapMode (MM_ANISOTROPIC);
dc.SetViewportExt (1, 1);
dc.SetWindowExt (1,10);
CPen linecolour3;
linecolour3.CreatePen(PS_DASH,1,RGB(0, 0, 255));
dc.SelectObject(linecolour3);
dc.Rectangle (100, 300, 300, 500);
DeleteObject(linecolour3);
}
CMFCApp1 MFCApp1;