VB 剪贴板函数详解 (2011-09-25 13:01:51)转载▼
标签: shop63374205 vb源码 剪粘板 函数 clipboard it 分类: VB程序设计
一、 表1 Clipboard对象的属性
方法 功能
Clear 清除剪贴板上的信息
GetData 从剪贴板上读取图形信息
GetText 从剪贴板上读取文本信息
SetData 将图形拷贝到剪贴板
SetText 将文本拷贝到剪贴板
GetForma 用来表示剪贴板中的内容是否与“数据格式”相符合
二、文本剪贴
在VB窗体上使用的文本框和组合框通过使用Clipboard对象的Clear、GetText、SetText等方法可以很容易地实现文本的复制、剪切、粘贴等功能。 两个最有用的 Clipboard 方法是 SetText 和 GetText。如下图 所示,用这两个方法向剪贴板和从 Clipboard 传送字符串数据。
SetText 将文本复制到 Clipboard 上,替换先前存储在那里的文本。可将 SetText 作为一条语句使用。其语法如下:
Clipboard.SetText data[, format]
字符串函数应用详解GetText 返回存储在 Clipboard 上的文本。也可将它作为函数使用:
destination = Clipboard.GetText()
将 SetText 和 GetText 方法,和“使用选定文本”中介绍的选择属性结合起来使用,可容易地编写文本框的“复制”,“剪切”和“粘贴”命令。
要注意的是 Copy 和 Cut 这两个过程,都要先用 Clear 方法将 Clipboard 清空。(因为可能要以几种不同的格式在 Clipboard 上放置数据,所以 Clipboard 不应自动清空。这在本章后面的“在 Clipboard 上使用多种格式”中有详细描述。然后,Copy 和 Cut 这两个过程,都用下面的语句将 Text1 中所选择的文本复制到 Clipboard 上:
Clipboard.SetText Text1.SelText
在“粘贴”命令中,GetText 方法将返回 Clipboard 上当前的文本字符串。然后用一条赋值语句将该字符串复制到文本框的指定位置 (Text1.SelText)。如果当前没有被选定的文本,则 Visual Basic 将该文本放置在文本框中插入点处:
Text1.SelText = Clipboard.GetText()
该代码假定全部文本被传送到或传送出文本框 Text1,而用户可在 Text1 和其它窗体上的控件之间进行复制、剪切和粘贴。
由于 Clipboard 是被整个环境所共享的,所以在 Text1 和任何正在使用剪贴板的应用程序之间,也能传送文本。
例如:
'--------------------------------------------
' 剪贴板的使用方法示例
'--------------------------------------------
'本例演示了剪贴板的使用方法,GetText 、SetText
'Clear 方法是剪贴板的几个方法,我们用它来复制
'文本,对于图象以及其它格式的数据的操作,请参考
'VB帮助文件。
'--------------------------------------------
Dim DataString As String
Private Sub Command1_Click ()
On Error Res
ume Next
If Text1.Text = "" Then
Msg = "第一个文本框内不能为空"
Exit Sub
Else
Clipboard.Clear
'SetText方法,用于复制文本到剪贴板上
'使用语法:object.SetText data, [format]
'data 必需的。是被放置到剪贴板中的字符串数据。
'Format 可选的。一个常数或数值,按照下列设置中的描述,指定 Visual Basic 识别的剪贴板格式。
'vbCFLink &HBF00 DDE 对话信息
'vbCFBitmap 2 位图(bmp)文件
'vbCFMetafile 3 元文件(.wmf文件)
'vbCFDIB 8 与设备无关的位图(DIB)
'vbCFPalette 9 调板
'vbCFRTF &HBF01 RTF 格式
'vbCFText 1 (缺省值)文本
Clipboard.SetText (Text1.Text )
End If
End Sub
Private Sub Command2_Click ()
'GetText方法,用来取得剪贴板上的文本内容
'使用语法为:Clipboard.GetText([数据的类型])
temp = Clipboard.GetText(vbCFText)
Text2.Text = temp
End Sub
Private Sub Command3_Click ()
'Clear方法,用于清空剪贴板上的数据
'使用语法:Clipboard.Clear
Clipboard.Clear
End Sub
三、图形剪贴
在VB中使用的图形对象,可以通过Clipboard对象的Setdata、Getdata等方法实现图形的剪贴功能。
例如:
Private Sub Command1_Click()
Clipboard.Clear
Clipboard.SetData Image1.Picture, 2 '把第一个图片框的位图放入剪贴板
End Sub
Private Sub Command2_Click()
Clipboard.Clear
Clipboard.SetData Image1.Picture
Image1.Picture = LoadPicture("")
End Sub
Private Sub Command3_Click()
Image2.Picture = Clipboard.GetData(2)
'把剪贴板的内容复制到第二个图片框中
End Sub
clipboard.GetFormat(数据格式)=Boolean 用来表示剪贴板中的内容是否与“数据格式”相符合
GetFormat(Format)方法返回一个整数,指出Clipboard对象中的项目是否匹配期望的
Format格式,必须用括号包括该常数或数值。用于Format格式的设置如表8.2所示。
表8.2 Format格式
常量 数值 说明
vbCFLink &HBF00 DDE对话信息
vbCFText 1 文本
vbCFBitmap 2 位图(.bmp文件)
vbCFMetafile 3 元文件(.wmf文件)
vbCFDIB 8 设备无关位图(DIB)
vbCFPalette 9 调板
如果Clipboard对象中指定一个项目匹配的格式,则GetFormat方法返回True。否则,返回False。
可用GetFormat方法来确认剪贴板上的数据是否具有特定的格式。例如,可根据Clipboard上的数据是否与当前活动控件兼容来决定使“粘贴”命令无效。
例子:
Private Sub Command1_C
lick()
Dim ClpFmt As Integer
Dim Msg As String
ClpFmt = 0
If Clipboard.GetFormat(vbCFText) Then ClpFmt = ClpFmt + 1
If Clipboard.GetFormat(vbCFBitmap) Then ClpFmt = ClpFmt + 2
If Clipboard.GetFormat(vbCFDIB) Then ClpFmt = ClpFmt + 4
If Clipboard.GetFormat(vbCFRTF) Then ClpFmt = ClpFmt + 8
Select Case ClpFmt
Case 1
Msg = "剪贴板只包含文本。"
Case 2, 4, 6
Msg = "剪贴板只包含一幅位图。"
Case 3, 5, 7
Msg = "剪贴板包含文本和一幅位图。"
Case 8, 9
Msg = "剪贴板只包含RFT文本。"
Case Else
Msg = "剪贴板上没有内容。"
End Select
MsgBox Msg, vbOKOnly, "信息提示"
End Sub
Private Sub Command2_Click()
Clipboard.SetData LoadPicture("c:\my documents\aa.bmp")
End Sub
Private Sub Command3_Click()
Clipboard.SetText "一段文本"
End Sub
Private Sub Form_Load()
Clipboard.Clear
End Sub
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论