在窗体 A 中截取到视频的图像,点击按钮跳转到窗体 B ,B上的A截取到的图片··怎么实现呢···就是 A 上有一个按钮,点击按钮,截取到了图像·但是怎么传到B窗口···???????????????大侠帮帮忙啊·····
我是VC++ MFC项目···
窗体跳转实现了·截图也实现了··但是不知道窗体之间怎么传递图片···???????????????????????????

解决方案 »

  1.   

     CClientDC SHDC(this);//取得客户区内存DC
     CClientDC   dc(this1);//目标dc
     CDC memDC;
     CRect rect;
     GetClientRect(rect); memDC.CreateCompatibleDC(&SHDC);
     CBitmap bm;
     int Width = rect.Width();//
     int Height = rect.Height();//
     bm.CreateCompatibleBitmap(&SHDC, Width, Height);
     CBitmap*  pOld = memDC.SelectObject(&bm);
     memDC.BitBlt(0, 0, Width, Height, &dc, 0, 0, SRCCOPY);
     memDC.SelectObject(pOld);
    试试可以不
      

  2.   

    昨天在着急修改别的问题········
    这个双缓冲加载图片···是可以·但是我的图片获取的DC和目标DC不在一个窗体内···在窗体A里的视频截图可以截取一个图片,我需要在窗体A 内有一个按钮Button 点击按钮截图并且窗体A跳转到窗体B,(A被B覆盖)。窗体B跳转出来的时候截图就已经存在窗体的PictureControl控件内了····
    就是这个图片在窗体间的传递怎么实现·······谢谢了···
      

  3.   

    先把要显示的图片信息保存起来,在别的文件中extern声明一下就可以用了吧
      

  4.   

    用变量保存图片信息的话
    可以声明一个句柄:HBITMAP hBmp;
     用句柄传递没试过
      

  5.   

    谢谢了··问题已经解决···解决方式如下
    截取视频图·存在全局变量CBitmap bm内··
    CDC m_MenDC;  //声明内存DC
    CDC m_MenDC2; //声明内存DC
     
    //获取视频DC
    HWND hwndV=::GetDlgItem(m_hWnd,IDC_STATIC);
    CDC* cdcV = GetDlgItem(IDC_STATIC)->GetDC();
    HDC hdcV = cdcV ->GetSafeHdc();
    CRect rectV;
    ::GetWindowRect(hwndV,&rectV);
      m_MenDC.CreateCompatibleDC(cdcV);//创建内存DC
      m_MenDC2.CreateCompatibleDC(cdcV);//创建内存DC
      bm.CreateCompatibleBitmap(GetDC(),rectV.Width(),rectV.Height());   HBITMAP hbmp=NULL;
       m_MenDC.SelectObject(hbmp);
        m_MenDC2.SelectObject(bm);
     m_MenDC2.BitBlt(0,0,rectV.Width(),rectV.Height(),cdcV,0,0,SRCCOPY);
       // cdcV->BitBlt(0,0,rectV.Width(),rectV.Height(),cdcV,0,0,SRCCOPY);//
    EndDialog(IDC_BUTTON_NEXT_FIRST);//跳到下一个窗体