回答: MSChart本 身 没 有 打 印 功 能 , 所 以 必 须 先 用 EditCopy将 图 像 放 在 剪 贴 板 中 , 然 后 再 打 印 , 如 下 :
MSChart1.EditCopy
Printer.Print " "
Printer.PaintPicture Clipboard.GetData(), 0, 0
Printer.EndDoc 此问题由李海 回答。 打印MsChart之类的控件
MsChart 之流的控件都没有提供一个直接打印的方法,使用 PrintForm 会把整个表单打出来,如果只要打印该控件, 方法是利用一个 PictureBox。
例如在 Form1 中有一个 MSChart1 和一个 Command1,增加一个 Picture1, 在Command1 的 Click 中增加下面的代码:
MSChart1.EditCopy
Picture1.Picture = Clipboard.GetData()
Printer.Print " "
Printer.PaintPicture Form2.Picture1.Picture, 0, 0
Printer.EndDoc
返回
我查了VB的用法,还有别的用法吗?赐教
MSChart1.EditCopy
Printer.Print " "
Printer.PaintPicture Clipboard.GetData(), 0, 0
Printer.EndDoc 此问题由李海 回答。 打印MsChart之类的控件
MsChart 之流的控件都没有提供一个直接打印的方法,使用 PrintForm 会把整个表单打出来,如果只要打印该控件, 方法是利用一个 PictureBox。
例如在 Form1 中有一个 MSChart1 和一个 Command1,增加一个 Picture1, 在Command1 的 Click 中增加下面的代码:
MSChart1.EditCopy
Picture1.Picture = Clipboard.GetData()
Printer.Print " "
Printer.PaintPicture Form2.Picture1.Picture, 0, 0
Printer.EndDoc
返回
我查了VB的用法,还有别的用法吗?赐教
解决方案 »
- 怎么用多线程传送一个窗口指针?
- 求助:new ActiveXObject("TimwpDll.TimwpCheck")无法创建对象是什么原因?
- 修改弹出菜单字的问题?
- 如何将256色、16位、32位的位图转为32位
- 求助!调试程序时遇到的问题(在线等待)
- 有关ctreectrl,如何使得鼠标右键点击空位置时,对应一行的节点文本不变为蓝色。
- 怎样能编程把word转化成*.prn格式或pdf格式,高分酬谢
- LPTSTR 和 LPCTSTR 和 LPWSTR等等,它们的区别是什么,他们的原形是什么?
- 有关windows下字体的问题(很着急的说)
- 标准C程序中调用类的编译错误
- 搞定这个问题肯定是高手,我打开一个对话框时,跳出消息:an unsupported operation was attempted
- 我在创建新数据源时,编译都已通过,运行时报错说....
if (m_pMemDC->GetSafeHdc()) m_pMemDC->DeleteDC();
m_pMemDC->CreateCompatibleDC(pDC); CClientDC dc(this);
CRect rect;
m_MsChart.GetClientRect(rect); m_pMemDC->SetMapMode(MM_ANISOTROPIC);
m_pMemDC->SetWindowExt(dc.GetDeviceCaps(LOGPIXELSX),dc.GetDeviceCaps(LOGPIXELSY));
m_pMemDC->SetViewportExt(m_pMemDC->GetDeviceCaps(LOGPIXELSX),m_pMemDC->GetDeviceCaps(LOGPIXELSY));
if (m_pBm->GetSafeHandle()) m_pBm->DeleteObject();
//m_pBm->CreateCompatibleBitmap(&dc,rect.Width(),rect.Height()); HBITMAP hBitmap;
m_MsChart.EditCopy();
OpenClipboard();
hBitmap = (HBITMAP)GetClipboardData(CF_BITMAP);
m_pMemDC->SelectObject(m_pBm->FromHandle(hBitmap));
EmptyClipboard();
CloseClipboard();
dc.DPtoLP(rect); //Convert to Logical Coordinates
m_rect = rect; //Save Logical Coordinates
m_pMemDC->BitBlt(0,0,rect.Width(),rect.Height(),&dc,0,0,SRCCOPY);
现在基本上解决了。
哪位有简便的方法?赐教