怎么把内存dc绘制到Graphics上?

解决方案 »

  1.   

    DC hDC = ::GetDC( this->m_hWnd );
    HDC hMemDC = ::CreateCompatibleDC( hDC );
    HBITMAP hBitmap = ::CreateCompatibleBitmap( hDC, m_FullRect.Width(), m_FullRect.Height()); SelectObject( hMemDC, hBitmap ); HBRUSH hBrush = CreateSolidBrush( RGB( 245, 243, 240)); FillRect( hMemDC, &nrect, hBrush ); DrawExtent(m_FullRect, hMemDC, m_userID); BitBlt( hDC, FULL_LEFT_OFFSET, FULL_LEFT_OFFSET, full_x/*m_FullRect.Width()*/, full_y/*m_FullRect.Height()*/, hMemDC, 0, 0,SRCCOPY );  ::ReleaseDC( this->m_hWnd, hDC );
    DeleteDC( hMemDC );
    DeleteObject( hBitmap );
    DeleteObject( hBrush );
      

  2.   

    我需要用GDI+来画,用来画dc旋转
      

  3.   

    构造一个以内存dc为参数的graphics
      

  4.   

    构造一个以内存dc为参数的graphics现在是以目标dc作为参数生成graphics,然后需要把源dc通过graphics画到目标dc上
      

  5.   


    可以通过GetHdc()获取到Graphics的hDC,然后就可以调用GDI的函数在hDC上面进行绘制
      

  6.   


    可以通过GetHdc()获取到Graphics的hDC,然后就可以调用GDI的函数在hDC上面进行绘制如果这样的话dc画上去不会有旋转
      

  7.   


    可以通过GetHdc()获取到Graphics的hDC,然后就可以调用GDI的函数在hDC上面进行绘制如果这样的话dc画上去不会有旋转
    你到底想干嘛,我都被人搞晕了
      

  8.   

    Graphics 就是用于绘制的.你可以先处理内存DC上的图.
    然后再通过Graphic把DC上的图绘制到屏幕上.你说的东西根本就不能实现
     Graphics类只是封装了一些方法, 其本身不能保存任何数据.
    Graphics::Graphics(Image*) 
    Graphics::Graphics(HDC) 
    Graphics::Graphics(HDC,HANDLE). 
    Graphics::Graphics(HWND,BOOL) 它只能依赖其它东西而存在.你可以定义两个内存DC, 一个内存DC,比如hDC1就是你说要的处理的DC, 另一个就用于绑定Graphics的, 比如hDC2.这样你要把hDC1的东西画到Graiics中就相当于绘制到hDC2中, 直接BitBlt即可.
      

  9.   

    http://www.cnblogs.com/zhixing/archive/2011/03/21/1990666.html
    这里有个例子, 你也可自行 百度 解决.  搜索"GDI+ 旋转"旋转问题比较容易的.只要你图像已经从摄像头拿到图了.
      

  10.   

    他这是是通过Image加载本地文件,我也尝试过通过IStream从内存加载图像RGB数据,但是不好用,