编程学习biancheng.45soft.com 本站提供了各种在线教程和资料,供大家学习与参考.
编程学习
当前位置: 主页 > VB6 > 界面设计 > VB6 界面设计 剪贴板

VB6 界面设计 剪贴板

剪贴板对象名称:Clipboard

属性:无

方法:SetText、GetText、Clear、GetData、SetData、GetFormat

剪贴板是Visual Basic中的5个预先定义好的全局使用对象之一。其它4个全局使用对象分别是应用程序(App)、屏幕(Screen)、打印机(Printer)及调试窗口(Debug)。


剪贴板对象不具备任何属性及事件,但有一些方法可以用来发送与接收数据。其中最有用的是SetText及GetText两种,它可用来和剪贴板进行数据的发送与接收,SetText可以将反白字符串复制到剪贴板上,而原来在剪贴板上的数据会被刚复制的数据所覆盖。

其语法格式:Clipboard.SetText data[,format]


[例子] 将文本框中的反白项复制到剪贴板的示例

Private Sub mnuCopy_Click()
    Clipboard.SetText(Text1.SelText)
End Sub

文本框有3个属性和反白项有关,它们是:

属性 说明
SelStart 用一个长整数来纪录反白区的起始位置。如果无反白区,则用来代表插入点的位置。
SelLength 用一个长整数来纪录反白区中的字符个数
SelText 代表被反白区的字符串。如果没有反白区,则为空字符串

由此可知,可以利用它们来控制文本框的反白区,例如以语句可将文本框所有字符全部反白:

Text1.SelStart=0
Text1.SelLength=Len(Text1.text)

而利用语句 Text1.SelText=”” 可将反白区的内容清除掉。


以下程序可实现“剪切”功能:

Private Sub mnuCut_Click()
    Clipboard.SetText(Text1.SelText)
    Text1.SelText = ""
End Sub

方法GetText方法可以取得剪贴板内的数据,它的语法格式:

Clipboard.GetText([format])

如果省略了format,就是文字数据。以下是实现剪贴办“粘贴”功能的程序段:

Private Sub mnuPast_Click()
    Text2.SelText = Clipborad.GetText()
End Sub

以上几段程序的缺点是只能将Text1中的反白区数据复制到剪贴板,而剪贴板的数据也只能粘贴到Text2中,程序可以说写“死”了。为了解决这个问题,必须使用屏幕对象的ActiveControl属性。因为Screen.ActiveControl可以告诉屏幕上哪个控件正处于活动(Active)状态。要剪贴哪个文本框,只要在它上面单击,就能够用Screen.ActiveControl来掌握它。如此以上三段程序可改写成:

Private Sub mnuCopy_Click() '复制
    Clipboard.SetText(Screen.ActiveControl.SelText)
End Sub

Private Sub mnuCut_Click() '剪切
    Clipboard.SetText(Screen.ActiveControl.SelText)
    Screen.ActiveControl.SelText = ""
End Sub
Private Sub mnuPast_Click() '粘贴
    Screen.ActiveControl.SelText = Clipborad.GetText()
End Sub

剪贴板内的数据可以用Clear方法来清除

格式为:Clipboard.Clear

以上讨论的都是处理文字数据。如果想处理其它格式的数据,就必须使用属性GetData、SetData和GetFormat三种方法。剪贴板可以处理多种不同的数据格式,每一种数据格式都可以用不同的号码来表示,如:

常量 说明
&HBF00 vbCFLink 建立动态数据交换的管道。这种数据格式允许用户进行动态剪贴板的功能
1 vbCFText 文字格式
2 vbCFBitmap 位图格式
3 vbCFMetafile “绘图命令集合文件”格式
8 vbCFDIB 与装置无关的位图格式
9 vbCFPalette 调色板

[例8.10] 通过剪贴板将图片框中的图片粘贴到另一个图片框中。(未能实现粘贴到图像框中,在图像框之间也未能实现这类操作)


剪贴板_界面设计_VB6

Private Sub Form_Load()
    Clipboard.Clear()
End Sub
Private Sub mnuCopy_Click() '复制
    Clipboard.SetData(Screen.ActiveControl.Picture, vbCFMetafile) 'vbCFBitmap
End Sub

Private Sub mnuCut_Click() '剪切
    Clipboard.SetData(Screen.ActiveControl.Picture)
    Screen.ActiveControl.Picture = LoadPicture("")
    Clipboard.Clear()
End Sub
Private Sub mnuPaste_Click() '粘贴
    If Clipboard.GetData = Empty Then Exit Sub
    Screen.ActiveControl.Picture = Clipboard.GetData(vbCFMetafile) 'vbCFBitmap)
End Sub

有些程序在读取剪贴数据时,会先检查是否是所要的数据格式。GetFormat就是用来获取剪贴板内的数据格式的。例如以下程序就是用来判断是否是文字数据:

if Clipboard.GetFormat(vbCFText)Then ……



编程学习 VB6 界面设计 剪贴板 转载请保留此行.谢谢.

VB6