如何在MFC C ++应用程序中保存到位图?

| 我只是从MFC开始,所以请宽容;)。 我已经编写了一个简单的应用程序(说实话,它主要是生成的),它应该完成Paint的琐事:绘制线条,矩形,椭圆形,更改要绘制的对象的颜色等。 我需要将屏幕上绘制的内容保存到bmp文件中。有什么想法可以实现吗? 我不知道这是否相关,但是我在屏幕上绘制对象而不使用任何CBitmap或类似的东西。这是负责绘图的部分代码:
CPaintDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
Anchor.x=point.x;
Anchor.y=point.y;
OldPoint.x=Anchor.x;
OldPoint.y=Anchor.y;
if(pDoc->shapeCount>=MAX_SHAPES) return;
pDoc->shapeCount++;

if(bFreehand)
    {
    pDoc->m_shape[pDoc->shapeCount-1] = new Shape;
    pDoc->m_shape[pDoc->shapeCount-1]->shape = ePoint;
    }
if(bLine)
    {
    pDoc->m_shape[pDoc->shapeCount-1] = new CLine;
    pDoc->m_shape[pDoc->shapeCount-1]->shape = eLine;
    }
if(bRectangle)
    {
    pDoc->m_shape[pDoc->shapeCount-1] = new CRectangle;
    pDoc->m_shape[pDoc->shapeCount-1]->shape = eRectangle;
    }
if(bEllipse)
    {
    pDoc->m_shape[pDoc->shapeCount-1] = new CEllipse;
    pDoc->m_shape[pDoc->shapeCount-1]->shape=eEllipse;
    }
pDoc->m_shape[pDoc->shapeCount-1]->x=point.x;
pDoc->m_shape[pDoc->shapeCount-1]->y=point.y;
pDoc->m_shape[pDoc->shapeCount-1]->x2=point.x;
pDoc->m_shape[pDoc->shapeCount-1]->y2=point.y;
pDoc->m_shape[pDoc->shapeCount-1]->Pen=CurrentPen;
pDoc->m_shape[pDoc->shapeCount-1]->Brush=CurrentBrush;
bButtonDown=true;
SetCapture();
我已经找到了这样做的方法,但是我不知道如何获取屏幕的宽度和高度以将其填充到CreateBitmap参数的列表中
        CBitmap *bitmap;
    bitmap.CreateBitmap(desktopW, desktopH, 1, 32, rgbData);
    CImage image;
    image.Attach(bitmap);
    image.Save(_T(\"C:\\\\test.bmp\"), Gdiplus::ImageFormatBMP);
    
已邀请:
        如果要保存的图像实际上是屏幕的整个尺寸,则“ 2”调用仅需要桌面的宽度和高度。如果确实是您的意图,则可以使用
CWnd::GetDesktopWindow()
获得一个
CWnd
对象,您可以查询该对象的宽度和高度: http://msdn.microsoft.com/zh-CN/library/bkxb36k8(v=VS.80).aspx 一般来说,这会变得很狡猾...如果除了多监视器场景外没有其他原因...所以我建议不要这样做,除非您真的想编写一个屏幕捕获应用程序。 您可能想要做的不是全屏拍摄,而只是保存程序窗口的内容。通常,您可以通过中断程序的绘制逻辑来做到这一点,以便在paint方法中调用一个辅助函数,该函数被编写为采用“ 5”设备上下文。然后,您可以在绘画调用中获得的基于窗口的DC上调用该函数,也可以在从位图创建的DC上调用该函数以进行保存。请注意,您可以在
CDC::SelectObject
中使用
CBitmap
: http://msdn.microsoft.com/zh-CN/library/432f18e2(v=VS.71).aspx (尽管我让您不使用MFC。请尝试使用Qt。更好。)     

要回复问题请先登录注册