有一个GROUPBOX控件 ,现在把这个控件及里面的内容.以图片的形式,插入到EXCEL表的指定单元格.具体应该怎么做呢?请高手们帮帮我..

解决方案 »

  1.   

    用windowsapi得到GROUPBOX控件的句柄然后调用Bitblt函数
      

  2.   

    谢谢htsf110,请问怎样获取控件句柄呢?我用  pFirstWindow = FindWindow(NULL, L"groupBox1"),句柄为空,是不是这个函数只能获取窗口.不能获取控件的句柄?
      

  3.   

    噢..原来groupBox1.Handle就能返回groupBox1控件的句柄...继续往下做..不懂的再向各位请教 ..先谢谢了..
      

  4.   

    Control类有个Control.DrawToBitmap()。
    用这个方法就可以。
      

  5.   

    GroupBox gb=....;
    Image image=.....;
    gb.DrawToBitmap(image,gb.ClientRectangle);
    保存image就是了。
      

  6.   

    谢谢:周公使用gb.DrawToBitmap(image,gb.ClientRectangle); 
    将图片保存在变量里面..怎样插入到EXCEL呢?最后一个问题....解决后马上结贴 ..谢谢了  
      

  7.   

    网上找的一段代码,希望有帮助
      using   System;   
      using   System.IO;   
      using   System.Data;   
      using   System.Drawing;   
      using   System.Drawing.Imaging;   
      using   System.Windows.Forms;   
      using   Excel;   
        
      private   void   EduceExcel()   
        {   
          string   picPath=Directory.GetCurrentDirectory()+'\\Excelpic.jpg';   
          string   ExcelName=Directory.GetCurrentDirectory()+'\\ExcelModul.xls';   
          string   fileName   =   'Excel'+DateTime.Now.ToString().Replace(':',   '')   +   '.xls';   
          Excel.Application   app   =new   Excel.Application();//建立Excel对象   
            app.Visible=true;//让Excel文件可见   
            Workbook   objbook;   
            objbook   =   app.Workbooks.Add(ExcelName);   
            Worksheet   worksheet;   
            worksheet   =(Worksheet)objbook.Worksheets[1];   
            Excel.Pictures   pics=(Excel.Pictures)worksheet.Pictures(Type.Missing);//建立图片集合对象   
        
            int   TD=1;   
            int   p=1;   
            PicItemColletion   picItems=   PicItem.Getpictems();//读取数据库图片数据集合   
              foreach(PicItem   PI   in   picItems)   
              {   
                if(PI.ImageData   !=   null)   
                {   
                MemoryStream   stream   =   new   MemoryStream(PI.ImageData,   0,   PI.ImageData.Length);   
                  
                Bitmap   bitmap   =   new   Bitmap(stream);   
        
                bitmap.Save(picPath,System.Drawing.Imaging.ImageFormat.Jpeg);//保存临时图片文件到硬盘里   
                  if(File.Exists(picPath))   
                  {   
                  stream.Close();//关闭图像文件流   
        
                Range   range_1   =range=worksheet.get_Range('A'+TD.ToString(),'A'+TD.ToString());   
                //获取填充单元格范围   
                                  
                  pics.Insert(picPath,Type.Missing);//获取图片   
        
                  Excel.Picture   pic   =   (Excel.Picture   )pics.Item(p);//建立图片集合某一图片对象   
        
                    pic.Left   =   (double)range_1.Left;   
                    pic.Top   =   (double)range_1.Top;   
                    pic.Height   =(double)range_1.Height;   
                    pic.Width   =(double)range_1.Width;   
                    TD=TD+1;   
                    p=p+1;     
                  }   
              }   
        
            if(File.Exists(picPath))   
            {   
              File.Delete(picPath);//删除图片   
            }   
        }
      

  8.   

    用gdi+可以实现,如果要插入excel,请参考上面的代码。
      

  9.   

    我不想再生成一个图片文件.再把文件插入到EXCEL.有更简单的办法吗?