毕业设计打印(GDI+)生产通知单界面及代码

6.3打印生产通知单界面及代码

6-5

 

        [DllImport("gdi32.dll")]               //导入BitBlt所要用的引用

        public static extern long BitBlt(     //位图函数

         IntPtr hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, System.Int32 dwRop);

 

        Bitmap memoryImage;//GDI+位图

 

        private void btn_Print_Click(object sender, EventArgs e)//打印

        {

            PrintDocument MyPrintDoc = new PrintDocument();  //打印文档  

            PrintPreviewDialog PPD = new PrintPreviewDialog();//预览对话框

           

            MyPrintDoc.PrintPage += new PrintPageEventHandler(MyPrintDoc_PrintPage);//打印当前页方法

 

            ProductPanel.Refresh();//刷新面板

 

            Graphics mygraphics = ProductPanel.CreateGraphics();//GDI+绘图图面

            Size s = ProductPanel.Size;                         //面板大小

            memoryImage = new Bitmap(s.Width, s.Height, mygraphics);//创建位图大小

            Graphics memoryGraphics = Graphics.FromImage(memoryImage);//加载位图

            IntPtr dc1 = mygraphics.GetHdc();                         //获取句柄

            IntPtr dc2 = memoryGraphics.GetHdc();

            BitBlt(dc2, 0, 0, ProductPanel.ClientRectangle.Width, ProductPanel.ClientRectangle.Height, dc1, 0, 0, 13369376);

            mygraphics.ReleaseHdc(dc1);

            memoryGraphics.ReleaseHdc(dc2);//释放空间

 

            ProductPanel.Refresh();//刷新面板

 

            PPD.Document = MyPrintDoc;//打印文档加入预览中

            PPD.ShowDialog();//打印预览

        }

        private void MyPrintDoc_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)

        {

            e.Graphics.DrawImage(memoryImage, 0, 0);

         }

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值