|
相关问题: <a href="http://topic.csdn.net/u/20090910/18/2c6ec777-8507-4559-8257-c9f052025b32.html" target="_blank">http://topic.csdn.net/u/20090910/18/2c6ec777-8507-4559-8257-c9f052025b32.html</a><br/><br/>界面:<br/><br/><img border="0" alt="" src="http://www.m5home.com/blog/attachments/month_0909/e20099146487.jpg"/><br/><br/>剪贴板的监视,需要先使用SetClipboardViewer设置某个句柄为剪贴板查看器的一员.<br/><br/>然后当剪贴板发生改变时,系统就会向这个句柄发送WM_DRAWCLIPBOARD消息.<br/><br/>只要使用子类化拦截到这个消息即可.<br/><br/>主要代码:<br/>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"></span></div></div></div><textarea style="DISPLAY: none" class="vb" rows="15" cols="100" name="code">Option Explicit
'剪贴板监视与管理示例代码
'BY 嗷嗷叫的老马
'<a href="http://www.m5home.com" target="_blank">http://www.m5home.com</a>
Private Declare Function SetClipboardViewer Lib "user32.dll" ( _
ByVal hwnd As Long) As Long
Private Const WM_DRAWCLIPBOARD As Long = &H308
Dim WithEvents objSC As cSubclass
Private Sub Command1_Click()
Me.Tag = 1
Clipboard.Clear
Clipboard.SetText Text1.Text
Me.Tag = 0
End Sub
Private Sub Command2_Click()
Me.Tag = 1
Clipboard.Clear
Clipboard.SetText Text2.Text
Me.Tag = 0
End Sub
Private Sub Form_Load()
Call SetClipboardViewer(Me.hwnd) '添加本句柄到剪贴板查看器列表
Set objSC = New cSubclass
objSC.AddWindowMsgs Me.hwnd
End Sub
Private Sub Form_Unload(Cancel As Integer)
objSC.DeleteWindowMsg Me.hwnd
Set objSC = Nothing
End Sub
Private Sub objSC_MsgCome(ByVal bBefore As Boolean, bHandled As Boolean, lReturn As Long, lng_hWnd As Long, uMsg As Long, wParam As Long, lParam As Long)
If bBefore Then
Select Case uMsg
Case WM_DRAWCLIPBOARD '剪贴板被改变
If Clipboard.GetFormat(vbCFText) And Me.Tag <> "1" Then '只对文本进行处理,自己复制时不处理
If Option1.Value Then Text1.Text = Clipboard.GetText
If Option2.Value Then Text2.Text = Clipboard.GetText
End If
End Select
End If
End Sub
</textarea><br/><br/>工程打包下载:<br/><br/><img style="MARGIN-TOP: 0px; MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px" alt="下载文件" src="http://www.m5home.com/blog/images/download.gif" 0px? -4px 2px="2px"/> <a href="http://www.m5home.com/blog/attachments/month_0909/f200991464918.rar" target="_blank">点击下载此文件</a> <br/> |
|