想保存bmp文件
不调用CFileDialog dlg(false,"bmp",NULL, OFN_OVERWRITEPROMPT,
"位图文件(*.bmp)|*.bmp||",
NULL);文件名用个Cstring变量表示
不弹出上面的那个对话框请问有何办法?重谢!!!!!!附原来保存的代码:CFileDialog dlg(false,"bmp",NULL, OFN_OVERWRITEPROMPT,
"位图文件(*.bmp)|*.bmp||",
NULL);
CDC* pChartDC;
pChartDC = m_chart.GetDC();
RECT mschartRect;
m_chart.GetClientRect(&mschartRect);
int mschartWidth = mschartRect.right - mschartRect.left;
int mschartHeight = mschartRect.bottom - mschartRect.top;
CBitmap myBitmap;
myBitmap.CreateCompatibleBitmap(pChartDC, mschartWidth, mschartHeight);
CDC myCopy;
myCopy.CreateCompatibleDC(pChartDC);
myCopy.SelectObject(myBitmap);
myCopy.BitBlt(0, 0, mschartWidth, mschartHeight, pChartDC,0,0,SRCCOPY);
BITMAP bits;
myBitmap.GetBitmap(&bits);
OpenClipboard();
EmptyClipboard();
SetClipboardData(CF_BITMAP,myBitmap.GetSafeHandle());
CloseClipboard();
if(dlg.DoModal()==IDOK)
{
CString filePath = dlg.GetPathName();
if(!OpenClipboard())
return;
if(!IsClipboardFormatAvailable(CF_BITMAP))
{
AfxMessageBox("CF_BITMAP not available");
CloseClipboard();
return;
}
HBITMAP hData = (HBITMAP)GetClipboardData(CF_BITMAP);
CloseClipboard();
PBITMAPINFO pbi = CreateBitmapInfoStruct(m_hWnd, hData);
CreateBMPFile(m_hWnd, filePath.GetBuffer(0), pbi, hData, ::GetDC(m_hWnd));
}
不调用CFileDialog dlg(false,"bmp",NULL, OFN_OVERWRITEPROMPT,
"位图文件(*.bmp)|*.bmp||",
NULL);文件名用个Cstring变量表示
不弹出上面的那个对话框请问有何办法?重谢!!!!!!附原来保存的代码:CFileDialog dlg(false,"bmp",NULL, OFN_OVERWRITEPROMPT,
"位图文件(*.bmp)|*.bmp||",
NULL);
CDC* pChartDC;
pChartDC = m_chart.GetDC();
RECT mschartRect;
m_chart.GetClientRect(&mschartRect);
int mschartWidth = mschartRect.right - mschartRect.left;
int mschartHeight = mschartRect.bottom - mschartRect.top;
CBitmap myBitmap;
myBitmap.CreateCompatibleBitmap(pChartDC, mschartWidth, mschartHeight);
CDC myCopy;
myCopy.CreateCompatibleDC(pChartDC);
myCopy.SelectObject(myBitmap);
myCopy.BitBlt(0, 0, mschartWidth, mschartHeight, pChartDC,0,0,SRCCOPY);
BITMAP bits;
myBitmap.GetBitmap(&bits);
OpenClipboard();
EmptyClipboard();
SetClipboardData(CF_BITMAP,myBitmap.GetSafeHandle());
CloseClipboard();
if(dlg.DoModal()==IDOK)
{
CString filePath = dlg.GetPathName();
if(!OpenClipboard())
return;
if(!IsClipboardFormatAvailable(CF_BITMAP))
{
AfxMessageBox("CF_BITMAP not available");
CloseClipboard();
return;
}
HBITMAP hData = (HBITMAP)GetClipboardData(CF_BITMAP);
CloseClipboard();
PBITMAPINFO pbi = CreateBitmapInfoStruct(m_hWnd, hData);
CreateBMPFile(m_hWnd, filePath.GetBuffer(0), pbi, hData, ::GetDC(m_hWnd));
}
解决方案 »
- emf转换成PDF
- CMD窗口的样式!
- 高手指点!这行代码是什么意思!
- 不能重载虚函数,右建加入虚函数显示:no virtual functions available to be overridden,删除.dsw和.clw文件后,重新进入后,仍不行,为什么呢?
- DLL中的常量导出
- 要连续读入200个300KB大小的图形文件,怎样读最快
- 特郁闷的一个问题,在线等!
- 想用c++开发一个程序:从oracle数据库中提取数据,生成一系列文件;这些代码要能在linux下使用;用什么工具做?
- 这是什么意思: LINK : warning LNK4098: defaultlib "LIBCMTD" conflicts with use of other libs; use /NODEFAULTLIB:library
- 程序报错 只有ntdll一行错误信息,如何定位到底在程序哪个地方出错?
- 关于Binary Raster Operations(SetROP2)的一个问题,老是想不通。
- mfc中的CCheckListBox中如何给行添加提示
以bmp文件的编号加日期可以生成唯一的文件名
CString changetime = now.Format("%B%d%H%M%S");这个生成日期时间字符串
CString changetime = now.Format("%B%d%H%M%S");char Dir[256];
::GetCurrentDirectory(256,Dir);
strcat(Dir,changetime);
strcat(Dir,".bmp");这样一组合就可以得到一个字符串如"Dec1214140512.bmp"这样
{
CString filePath = dlg.GetPathName();
if(!OpenClipboard())
return; if(!IsClipboardFormatAvailable(CF_BITMAP))
{
AfxMessageBox("CF_BITMAP not available");
CloseClipboard();
return;
} 修改为:...
CTime now = CTime::GetCurrentTime();
CString changetime = now.Format("%B%d%H%M%S");char Dir[256];
::GetCurrentDirectory(256,Dir);
strcat(Dir,changetime);
strcat(Dir,".bmp");filePath = Dir;
if(!OpenClipboard())
return; 即可。
if(hFile!=INVALID_HANDLE_VALUE)
{
DWORD dwRet=0;
//填充文件头
BITMAPFILEHEADER bmfHeader;
ZeroMemory(&bmfHeader,sizeof(bmfHeader));
bmfHeader.bfOffBits=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER);
bmfHeader.bfSize=bi.bmiHeader.biSizeImage+bmfHeader.bfOffBits;
bmfHeader.bfType=((WORD) ('M' << 8) | 'B');
WriteFile(hFile,&bmfHeader,sizeof(bmfHeader),&dwRet,NULL);
WriteFile(hFile,&bi.bmiHeader,sizeof(bi.bmiHeader),&dwRet,NULL);
WriteFile(hFile,pBits,bi.bmiHeader.biSizeImage,&dwRet,NULL);
CloseHandle(hFile);
}yourFileName就是你想保存的文件名地址如C:\test.bmp
if(dlg.DoModal()==IDOK)
{
CString filePath = dlg.GetPathName();
if(!OpenClipboard())
return; if(!IsClipboardFormatAvailable(CF_BITMAP))
{
AfxMessageBox("CF_BITMAP not available");
CloseClipboard();
return;
} 自己定个
CString filePath = “fuckyou.bmp”不就了事了
真他妈的SB啊
好像要加个路径吧
如:
CString filePath = “C:\fuckyou.bmp”