MFC SDI,
我在保存视图区的内容为图片时,
下拉的菜单也被保存在了图片中,
请问怎么解决?
我在保存视图区的内容为图片时,
下拉的菜单也被保存在了图片中,
请问怎么解决?
解决方案 »
- 请问怎么向TreeControl里的内容添加响应函数??
- VC里面如何导入HyperLink类啊
- 帮偶看下这个IPC编程的错怎么改
- 请问如何在用 ALT 写的 ASP 组件中正确调用GDI+ ?谢谢!!!
- ReadFile求助
- debug 单步执行(step over),在某一点处执行完函数后,程序使用的内存大小是否应恢复到执行函数前的大小?如果发现不等了,是什么原因
- 偶有200多分的问题没人回答,送分了,进来就给分
- 求在VC++程序中启动另一个*exe的方法
- VC++2010对摄像头的控制
- 怎样把ActiveX控件的属性设置成默认或隐含。
- 这个操作是如何实现的
- 救命啊,管道通信只实现输出,加输入管道就停在ReadFile了
void CGraphSoftView::OnFileExport()
{
// 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);
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_OVERWRITEPROMPT,_T("*.bmp|*.bmp|*.lld|*.lld|*.*|*.*|"));
if (dlg.DoModal()==IDOK)
{
if(dlg.GetFileExt()=="bmp"){
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();
CString str;
str.LoadString(IDS_STRING_SAVE_SUCCESS);
AfxMessageBox(str);
}
}else if(dlg.GetFileExt()=="lld"){
FILE *OutStream;
OutStream = fopen(dlg.GetPathName(), "w" );
GetDocument()->ExPort(OutStream); fclose(OutStream);
}
}
GlobalFreePtr(lpData);
}
bm.CreateCompatibleBitmap(&dc, Width, Height);
由于下拉菜单挡住了视图区内容,下拉菜单还没有消失,
就被保存到了位图中,