vecovietnam

Màu nền
Font chữ
Font size
Chiều cao dòng

#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