从AxmsChart复制图象到剪贴板然后再导出图片,出现错误,代码如下: AxmsChart1.Editcopy() |
我猜测可能是mschart迁移到到.net之后出现的问题,单独用editcopy没问题,用画板可以读取内存里
的图片,用Clipboard.Getimage方法也没问题,但两者在一起就有问题,我估计可能editcopy方法独
占了剪贴板(我还是不相信)?亦或者editcopy线程不安全?具体到现在我也不太清楚,反正就不能简单共存
(以前VB里就这么用的)。
我也试着从网友介绍的用单线程、提升权限角度解决问题,但都没成功。既然我发现使用完
editcopy方法后用windows自带的画板能读取,就联想到我用api函数来读取clipboard行不行呢?经过
测试后,发现果然可以,我用vb.net的代码写的过程,大家可以参考一下:
声明: Private Const CF_BITMAP As Short = 2 Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Integer) As Integer Integer |
功能过程代码: Dim iBitmapPtr As Integer Dim iBitmap As System.Drawing.Bitmap Me.AxmsChart1.Editcopy() MessageBoxIcon.Error) Else Me.SaveFileDialog1.FileName = "" Me.SaveFileDialog1.Filter = "BMP文件(*.bmp)|*.bmp" Me.SaveFileDialog1.OverwritePrompt = True If Me.SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then If System.IO.File.Exists(Me.SaveFileDialog1.FileName) = True Then System.IO.File.Delete(Me.SaveFileDialog1.FileName) End If iBitmap.Save(Me.SaveFileDialog1.FileName) End If End If CloseClipboard() |
原文地址:https://www.jb51.cc/vb/263558.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。