15,979
社区成员
发帖
与我相关
我的任务
分享
现在是以目标dc作为参数生成graphics,然后需要把源dc通过graphics画到目标dc上 构造一个以内存dc为参数的graphics [quote=引用 楼主 sx5486510 的回复:] 怎么把内存dc绘制到Graphics上?
http://www.cnblogs.com/zhixing/archive/2011/03/21/1990666.html 这里有个例子, 你也可自行 百度 解决. 搜索"GDI+ 旋转" 旋转问题比较容易的. 只要你图像已经从摄像头拿到图了.
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即可.
现在是以目标dc作为参数生成graphics,然后需要把源dc通过graphics画到目标dc上 构造一个以内存dc为参数的graphics 怎么把内存dc绘制到Graphics上?
构造一个以内存dc为参数的graphics 怎么把内存dc绘制到Graphics上?
怎么把内存dc绘制到Graphics上?
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 );