想做一个画图程序,却不知怎样将用户在客户区用鼠标绘制的图保存为位图形式?
解决方案 »
- 建立多个非阻塞socket问题
- MFC类实现,求释疑!
- 新手想弄个五子棋小游戏遇到到一些问题,望高手来解答解答
- 如何让MFC对话框最大化后把任务栏也覆盖调
- vs中编译错误,帮忙看看!
- 我的VC程序使用 ADO 访问 Access 2003 数据库,发布之后在没有安装 Access 2003 的机器上运行不正常,应该怎么办?
- ▄︻┳═一 求关于COM编程的建议【来者有分】 一═┳︻▄
- 装上我的程序,插入U盘后,“我的电脑”里没有显示光盘盘符
- MFC对话框程序内嵌暴风影音播放器
- 一个极其简单的问题在困扰着我!一个极其简单的问题在困扰着我!一个极其简单的问题在困扰着我!一个极其简单的问题在困扰着我!一个极其简单的问题在困扰着我!
- 紧急!!!请看下面的代码,Direct Show的内存泄漏问题!!!
- 100分求教:如何获得网卡或cpu的序列号等信息
void CDemo1View::OnFileSave()
{
// TODO: Add your command handler code here
CClientDC dc(this);
CDC memDC;
CRect rect;
GetClientRect(rect); memDC.CreateCompatibleDC(&dc);
CBitmap bm;
int Width = rect.Width();
int Height = rect.Height();
bm.CreateCompatibleBitmap(&dc, Width, Height);
CBitmap* pOld = memDC.SelectObject(&bm);
memDC.BitBlt(0, 0, Width, Height, &dc, 0, 0, SRCCOPY);
memDC.SelectObject(pOld);
BITMAP btm;
bm.GetBitmap(&btm);
DWORD size = btm.bmWidthBytes * btm.bmHeight;
LPSTR lpData = (LPSTR)GlobalAllocPtr(GPTR, size);
BITMAPFILEHEADER bfh;
/////////////////////////////////////////////
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,bm,0,bih.biHeight,lpData,(BITMAPINFO*)&bih,DIB_RGB_COLORS);
//bm.GetBitmapBits(size,lpData);//此函数在处理5-5-5模式的16位色下会出现颜色混乱
bfh.bfReserved1 = bfh.bfReserved2 = 0;
bfh.bfType = ((WORD)('M'<< 8)|'B');
bfh.bfSize = 54 + size;
bfh.bfOffBits = 54; CFileDialog dlg(false,_T("BMP"),_T("*.bmp"),OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,_T("*.bmp|*.bmp|*.*|*.*|"));
if (dlg.DoModal()!=IDOK)
return; CFile bf; CString ss=dlg.GetPathName();
if(bf.Open(ss, CFile::modeCreate | CFile::modeWrite))
{
bf.WriteHuge(&bfh, sizeof(BITMAPFILEHEADER));
bf.WriteHuge(&bih, sizeof(BITMAPINFOHEADER));
bf.WriteHuge(lpData, size);
bf.Close();
AfxMessageBox("保存成功");
}
GlobalFreePtr(lpData);
}
http://www.yangning.com/cgi-bin/topic.cgi?forum=1&topic=82&show=0