Copy
#include <afxwin.h>
class CSimpleApp : public CWinApp
{
public:
BOOL InitInstance();
};
class CMainFrame : public CFrameWnd
{
public:
CMainFrame();
DECLARE_MESSAGE_MAP()
afx_msg void OnPaint();
};
BOOL CSimpleApp:: InitInstance(){
m_pMainWnd = new CMainFrame();
m_pMainWnd-> ShowWindow(m_nCmdShow);
return TRUE;
}
CMainFrame:: CMainFrame()
{
CRect rect(10 ,10 ,600 ,300 );
Create(NULL , TEXT("Drawing Lines and Shapes MFC" ),WS_OVERLAPPEDWINDOW,rect);
}
BEGIN_MESSAGE_MAP(CMainFrame,CFrameWnd)
ON_WM_PAINT()
END_MESSAGE_MAP()
CSimpleApp MFCApp1;
afx_msg void CMainFrame:: OnPaint()
{
CPaintDC dc(this );
//array structure for polygon
CPoint polygon[8 ];
polygon[0 ] = CPoint(30 , 185 );
polygon[1 ] = CPoint(95 , 185 );
polygon[2 ] = CPoint(105 , 130 );
polygon[3 ] = CPoint(65 , 145 );
polygon[4 ] = CPoint(30 , 135 );
//array structure for bezier curve
CPoint bezier[8 ];
bezier[0 ] = CPoint(280 , 180 );
bezier[1 ] = CPoint(320 , 180 );
bezier[2 ] = CPoint(325 , 130 );
bezier[3 ] = CPoint(350 , 130 );
//draw bounding box for display
dc.MoveTo(10 ,10 );
dc.LineTo(570 ,10 );
dc.LineTo(570 ,240 );
dc.LineTo(10 ,240 );
dc.LineTo(10 ,10 );
//draws ellipse using default pen and brush
dc.Ellipse(30 , 30 , 120 , 90 );
dc.TextOut(50 ,95 ,TEXT("Ellipse" ),7 );
//draws rounded rectangle with green brush
CBrush crColor (RGB(0 , 255 , 0 ));
dc.SelectObject(crColor);
dc.RoundRect( 150 , 30 , 240 , 90 , 15 , 20 );
dc.TextOut(130 ,95 ,TEXT("Rounded rectangle" ),17 );
//draws chord with yellow vertical hatchbrush
CBrush hatchbrush;
hatchbrush.CreateHatchBrush(HS_VERTICAL ,RGB(255 ,255 ,0 ));
dc.SelectObject(hatchbrush);
dc.Chord( 270 , 30 , 360 , 90 , 270 , 45 , 360 , 45 );
dc.TextOut(300 ,95 ,TEXT("Chord" ),5 );
//draws polygon with red horitizontal hatchbrush
CBrush hatchbrush1;
hatchbrush1.CreateHatchBrush(HS_HORIZONTAL ,RGB(255 ,0 ,0 ));
dc.SelectObject(hatchbrush1);
dc.Polygon(polygon, 5 );
dc.TextOut(50 ,195 ,TEXT("Polygon" ),7 );
//draws rectangle with black brush
CBrush blackbrush (RGB(0 ,0 ,0 ));
dc.SelectObject(blackbrush);
dc.Rectangle( 150 , 130 , 230 , 180 );
dc.TextOut(160 ,195 ,TEXT("Rectangle" ),9 );
//draws Bezier curve with default pen
dc.PolyBezier(bezier,4 );
dc.TextOut(290 ,195 ,TEXT("Bezier" ),6 );
//draws pie with white brush
CBrush whitebrush (RGB(255 ,255 ,255 ));
dc.SelectObject(whitebrush);
dc.Pie(400 ,30 , 490 ,90 , 270 ,45 , 360 ,45 );
dc.TextOut(435 ,95 ,TEXT("Pie" ),3 );
//draw lines
CPen hpen (PS_DASH,1 ,RGB(0 , 0 , 255 ));
dc.MoveTo(400 ,130 );
dc.SelectObject(hpen);
dc.LineTo(490 ,130 );
dc.MoveTo(400 ,155 );
CPen hpen1 (PS_DOT,1 ,RGB(255 , 0 , 255 ));
dc.SelectObject(hpen1);
dc.LineTo(490 ,155 );
dc.MoveTo(400 ,180 );
CPen hpen2 (PS_DASHDOTDOT,1 ,RGB(255 , 0 , 0 ));
dc.SelectObject(hpen2);
dc.LineTo(490 ,180 );
dc.TextOut(430 ,195 ,TEXT("Lines" ),5 );
}