#include <afxwin.h>
#include <afxdlgs.h>
#define ID_PRINT 174
#define ID_DRAW 142
#define ID_EXIT 149
//khai bao cac lop ung dung
class CMyApp:public CWinApp
{
public:
BOOL InitInstance();
};
class CMyWin:public CFrameWnd
{
public:
CMyWin();
void OnPrint();//dua du lieu ra may in
void OnDraw();//ve len cs
void OnExit();
DECLARE_MESSAGE_MAP()
};
CMyApp theApp;
BEGIN_MESSAGE_MAP(CMyWin,CFrameWnd)
ON_COMMAND(ID_PRINT,OnPrint)
ON_COMMAND(ID_DRAW,OnDraw)
ON_COMMAND(ID_EXIT,OnExit)
END_MESSAGE_MAP()
BOOL CMyApp::InitInstance()
{
m_pMainWnd=new CMyWin;
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return true;
}
CMyWin::CMyWin()
{
Create(NULL,"vi du 02-chuong 08");
CMenu mn;
mn.CreateMenu();
mn.AppendMenu(MF_BYCOMMAND|MF_STRING,ID_DRAW,"Draw");
mn.AppendMenu(MF_BYCOMMAND|MF_STRING,ID_PRINT,"Print");
mn.AppendMenu(MF_BYCOMMAND|MF_STRING,ID_EXIT,"Exit");
SetMenu(&mn);
}
void CMyWin::OnPrint()//ham ve len may in
{
CDC dc;//ngu canh thiet bi cua cs
CPen p;
p.CreatePen(PS_SOLID,3,RGB(255,0,0));
CPrintDialog pd(FALSE);//khoi tao 1 dt cua lop may in
DOCINFO di;
pd.DoModal();//bat hop thoai may in len
dc.Attach(pd.GetPrinterDC());//gan nc tb cua may in vao
di.cbSize=sizeof(dc);
di.fwType=0;
di.lpszDatatype=NULL;
di.lpszOutput=NULL;
di.lpszDocName="Tai lieu in test";
dc.StartDoc(&di);//bat dau in van ban
dc.StartPage();//bat dau in 1 trang
dc.SelectObject(&p);
dc.SetMapMode(MM_LOMETRIC);//dat lai khung nhin de ve
//dc.Ellipse(0,0,1000,-1000);//ve len may in
CBrush b,d;
d.CreateSolidBrush(RGB(255,0,0));
dc.SelectObject(d);
dc.Rectangle(100,20,800,380);
b.CreateSolidBrush(RGB(248,231,22));
dc.SelectObject(b);
CPoint a[10];
a[0].x=450;
a[0].y=100;
a[1].x=480;
a[1].y=150;
a[2].x=570;
a[2].y=150;
a[3].x=500;
a[3].y=210;
a[4].x=550;
a[4].y=300;
a[5].x=450;
a[5].y=250;
a[6].x=350;
a[6].y=300;
a[7].x=400;
a[7].y=210;
a[8].x=330;
a[8].y=150;
a[9].x=420;
a[9].y=150;
dc.Polygon(a,10);
dc.EndPage();//ket thuc in 1 trang
dc.EndDoc();//ket thuc van ban
MessageBox("Da in xong");
dc.DeleteDC();//xoa ngu canh thiet bi
}
void CMyWin::OnDraw()//ve len cs
{
CDC *bc = GetDC();
CBrush b,d;
CPen p;
p.CreatePen(PS_SOLID, 2, RGB(255,0,0));
d.CreateSolidBrush(RGB(255,0,0));
bc->SelectObject(d);
bc->Rectangle(100,20,800,380);
b.CreateSolidBrush(RGB(248,231,22));
bc->SelectObject(b);
CPoint a[10];
a[0].x=450;
a[0].y=100;
a[1].x=480;
a[1].y=150;
a[2].x=570;
a[2].y=150;
a[3].x=500;
a[3].y=210;
a[4].x=550;
a[4].y=300;
a[5].x=450;
a[5].y=250;
a[6].x=350;
a[6].y=300;
a[7].x=400;
a[7].y=210;
a[8].x=330;
a[8].y=150;
a[9].x=420;
a[9].y=150;
bc->Polygon(a,10);
/*
bc->MoveTo(450,100);
bc->LineTo(350,300);
bc->MoveTo(450,100);
bc->LineTo(550,300);
bc->MoveTo(350,150);
bc->LineTo(550,150);
bc->MoveTo(350,150);
bc->LineTo(550,300);
bc->MoveTo(350,300);
bc->LineTo(550,150);
/*bc->MoveTo();
bc->LineTo();
bc->MoveTo();
bc->LineTo();*/
}
void CMyWin::OnExit()
{
DestroyWindow();
}
Bạn đang đọc truyện trên: Truyen2U.Pro