我在对话框上添加了一个Custom Control,并将饼状图、条形图、线性图绘制在Custom Control上,现在我想将该控件上的图像打印出来,要求实现打印和打印预览的功能。
另外:怎样将Custom Control上的图像存储为bmp格式的文件
请各位大哥指教
另外:怎样将Custom Control上的图像存储为bmp格式的文件
请各位大哥指教
解决方案 »
- 基础问题
- CFile* pFile = NULL;和CFile file;的区别?
- 为什么DLL编译出的函数是这个样?带有特殊字符 如:?? @@
- 如何响应水平、垂直滚动条右下角交叉处小方块的点击消息
- CListBox的string颜色问题
- 如何在编写ocx时使之拥有可视化界面
- 想要做一个数据库备份的程序,请说说,方案,谢谢!!!
- 怎样把后面的子窗口提前??
- 请问windows me下怎么调试asp
- 求高人救助,使用cfiledialog出现前所未见的问题
- 【视频捕捉】除了DirectX,还有什么方法可以捕捉视频?有没有比较简单的不需要大的类库的?
- 谁帮我解释一下里面的语法方面的问题啊,我是新手,谢谢
http://www.vckbase.com/document/viewdoc/?id=181
{
PRINTDLG pd;
pd.lStructSize = sizeof( PRINTDLG );
pd.Flags = PD_RETURNDC;
pd.hDC = NULL;
pd.hwndOwner = NULL;
pd.hInstance = NULL;
pd.nMaxPage = 1;
pd.nMinPage = 1;
pd.nFromPage = 1;
pd.nToPage = 1;
pd.nCopies = 1;
pd.hDevMode = NULL;
pd.hDevNames = NULL;if( !PrintDlg( &pd ) ) // 显示打印对话框,由用户来设定纸张大小等。
{
return; // 用户取消,打印失败
}ASSERT( pd.hDC != NULL );
int iHorRes = GetDeviceCaps(pd.hDC, HORZRES);
int iVerRes = GetDeviceCaps(pd.hDC, VERTRES);DOCINFO di;
di.cbSize = sizeof(DOCINFO);
di.lpszDocName = _T("标题");
di.lpszOutput = NULL;
di.lpszDatatype = NULL;
di.fwType = 0;
StartDoc( pd.hDC, &di );StartPage( pd.hDC ); // 开始打印第一页
// 直接用普通 GDI 函数在pd.hDC上绘制即可。iHorRes, iVerRes 分别为 DC 的宽度和高度(象素)
EndPage( pd.hDC );StartPage( pd.hDC ); // 开始打印第二页
// ...
EndPage( pd.hDC );EndDoc( pd.hDC ); // 打印完毕
DeleteDC( pd.hDC );
}
HDC hDC = ::CreateEnhMetaFile( hReferenceDC, NULL, NULL,_T("") );
::ReleaseDC( hReferenceDC );// ..., 在 hDC 上用普通的 GDI 函数绘制图形HENHMETAFILE hMetaFile = ::CloseEnhMetaFile( hDC );::OpenClipboard( m_hWnd );
::EmptyClipboard( );
::SetClipboardData( CF_ENHMETAFILE, hMetaFile );
::CloseClipboard( ); // hMetaFile 交给剪贴板删除。// 复制完成,在“画图”中粘贴即可看到图形。