在线急等,怎样将vc对话框控件static绘制的图形保存为BMP文件

请高手指点,我在vc对话框static控件里绘制了一幅图形,怎样将它保存为BMP文件!!高分急盼呀您说的这个对文档绘图区域保存还管用些,我试过,但是对我用对话框控件所绘制... 请高手指点,我在vc对话框static控件里绘制了一幅图形,怎样将它保存为BMP文件!!
高分急盼呀
您说的这个对文档绘图区域保存还管用些,我试过,但是对我用对话框控件所绘制的图形保存不了呀
展开
 我来答
风轻云度
2008-06-08 · TA获得超过1423个赞
知道大有可为答主
回答量:1835
采纳率:0%
帮助的人:0
展开全部
参照下面代码:

BOOL SaveBitmapToFile(CString strFileName)
{
CDC dc;
dc.CreateDC((LPCTSTR)"DISPLAY",NULL,NULL,NULL);
CBitmap bm;
int Width=GetSystemMetrics(SM_CXSCREEN);
int Height=GetSystemMetrics(SM_CYSCREEN);
bm.CreateCompatibleBitmap(&dc,Width,Height);
CDC tdc;
tdc.CreateCompatibleDC(&dc);
CBitmap*pOld=tdc.SelectObject(&bm);
tdc.BitBlt(0,0,Width,Height,&dc,0,0,SRCCOPY);
tdc.SelectObject(pOld);
BITMAP btm;
bm.GetBitmap(&btm);
DWORD size=btm.bmWidthBytes*btm.bmHeight;
LPSTR lpData=(LPSTR)GlobalAlloc(GPTR,size);
if(lpData != NULL)
{
BITMAPINFOHEADER bih;
bih.biBitCount=btm.bmBitsPixel;
bih.biClrImportant=0;
bih.biClrUsed=0;
bih.biCompression=0;
bih.biHeight=btm.bmHeight;
bih.biPlanes=1;
bih.biSize=sizeof(BITMAPINFOHEADER);
bih.biSizeImage=size;
bih.biWidth=btm.bmWidth;
bih.biXPelsPerMeter=0;
bih.biYPelsPerMeter=0;
GetDIBits(dc.m_hDC,bm,0,bih.biHeight,lpData,(BITMAPINFO*)&bih,DIB_RGB_COLORS);

BITMAPFILEHEADER bfh;
bfh.bfReserved1=bfh.bfReserved2=0;
bfh.bfType=((WORD)('M'<<8)|'B');
bfh.bfSize=sizeof(bfh)+size;
bfh.bfOffBits=sizeof(bfh);
CFile bf;
if(bf.Open(strFileName,CFile::modeCreate|CFile::modeWrite))
{
bf.Write(&bfh,sizeof(BITMAPFILEHEADER));
bf.Write(&bih,sizeof(BITMAPINFOHEADER)); //要把打包的代码改为这样.
bf.Write(lpData,size);
bf.Close();
}
::GlobalFree(lpData);
}

dc.DeleteDC();

return TRUE;
}
皇家救星1985
2008-06-09 · TA获得超过1131个赞
知道大有可为答主
回答量:1579
采纳率:0%
帮助的人:1667万
展开全部
CStatic::GetBitmap

Gets the handle of the bitmap, previously set with SetBitmap, that is associated with CStatic.

HBITMAP GetBitmap( ) const;
--------------------------------------------------
CBitmap::FromHandle

Returns a pointer to a CBitmap object when given a handle to a Windows GDI bitmap.

static CBitmap* PASCAL FromHandle(
HBITMAP hBitmap
);
---------------------------------------------------
再配合LS的函数,稍微修改一下应该可以搞掂
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式