vb中在本程序中一定范围内截取图片到剪切板

如题,题目不太好说明,我来举例:窗体中一个image(加载了图片),一个text(加载了文字),我的目的是把image内容和text内容整体作为一个图片到剪贴板。1、我试... 如题,题目不太好说明,我来举例:
窗体中一个image(加载了图片),一个text(加载了文字),我的目的是把image内容和text内容整体作为一个图片到剪贴板。
1、我试着建一个picture,然后把image和text放进picture,然后clicpboard.setdata picture1.picture,内容是空的,我以为只要那两个控件放进picture,就可以当成picture1的picture内容。
2、上面的办法行不通,那怎么样截取picture1内的内容(也可以不借助picture1,个人以为借助picture1可能会方便一些)?
展开
 我来答
网海1书生
科技发烧友

2014-10-28 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26228

向TA提问 私信TA
展开全部
Picture1.Picture 这个只是Picture1的背景图片,与上面的控件是没有直接关系,控件也不可能是图片的一部分。就像你家的地毯,与上面摆放的家具是没有直接的关系的。
你应该使用截屏的方式才能实现你的目的。要截屏有多种方式,下面是比较简单的一种:

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Private Sub Command1_Click()
keybd_event vbKeySnapshot, 1, 0, 0
End Sub

点击Command1后,窗体就被复制到剪贴板了。如果你想截取图片的某一部分,那么你可以用图片框调入这个图片(直接从剪贴板调入即可),再在图片框进行剪裁即可。
更多追问追答
追问
在按钮事件中,不加Clipboard.Clear,就会有可能保留之前的剪切板内容),加了clear,就会剪切板出错,把Clipboard.Clear加到form_load里,就会点两次按钮才能出图,这种该怎么处理呀
Clipboard.Clear

keybd_event vbKeySnapshot, 1, 0, 0
Picture2.Picture = Clipboard.GetData()
追答
不加Clipboard.Clear,并不会保留之前的剪切板内容的(我不知道你是听谁说的),就像你按了一次Ctrl+C,过一会再按Ctrl+C,第二次复制的内容会自动覆盖前一次的内容的,因为Windows系统的剪贴板只能保留一次的复制或剪切的数据的。一般情况下Clipboard.Clear是不需使用的,在特殊情况下才要用到。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式