用SendMessage实现剪贴板操作
要使用这一技巧,你就需要声明用于剪切、复制和粘贴的常数: PrivateConstWM_COPY=H301 PrivateConstWM_CUT=H300 PrivateConstWM_PASTE=H302 然后,声明对SendMessageAPI的调用: PrivateDeclareFunctionSendMessageLib
   要使用这一技巧,你就需要声明用于剪切、复制和粘贴的常数:
  
PrivateConstWM_COPY=&H301
PrivateConstWM_CUT=&H300
PrivateConstWM_PASTE=&H302
  
然后,声明对SendMessageAPI的调用:
  
PrivateDeclareFunctionSendMessageLib"user32"_
Alias"SendMessageA"(ByValhWndAsLong,_
ByValwMsgAsLong,ByValwParamAsLong,lParamAsAny)AsLong
  
HWnd自变量能够接受消息发送的目的控件的句柄,而wMsg自变量会接受一个表明要被发送的是哪个对象的常数。WParam和lParam自变量被用来把其他信息同消息一起传递,但是不对WM_CUT、WM_COPY或者WM_PASTE使用。
  
下面是从菜单点击事件调用SendMessageAPI的代码:
  
PrivateSubmnuCopy_Click()
CallSendMessage(Me.ActiveControl.hwnd,WM_COPY,0,0)
EndSub
  
PrivateSubmnuCut_Click()
CallSendMessage(Me.ActiveControl.hwnd,WM_CUT,0,0)
EndSub
  
PrivateSubmnuPaste_Click()
CallSendMessage(Me.ActiveControl.hwnd,WM_PASTE,0,0)
EndSub
  
这个技巧能够用于任何实现hWnd属性,并能够响应WM_CUT、WM_COPY和WM_PASTE消息的控件。还应该实现错误处理,以处理不带hWnd属性的控件。->
PrivateConstWM_COPY=&H301
PrivateConstWM_CUT=&H300
PrivateConstWM_PASTE=&H302
然后,声明对SendMessageAPI的调用:
PrivateDeclareFunctionSendMessageLib"user32"_
Alias"SendMessageA"(ByValhWndAsLong,_
ByValwMsgAsLong,ByValwParamAsLong,lParamAsAny)AsLong
HWnd自变量能够接受消息发送的目的控件的句柄,而wMsg自变量会接受一个表明要被发送的是哪个对象的常数。WParam和lParam自变量被用来把其他信息同消息一起传递,但是不对WM_CUT、WM_COPY或者WM_PASTE使用。
下面是从菜单点击事件调用SendMessageAPI的代码:
PrivateSubmnuCopy_Click()
CallSendMessage(Me.ActiveControl.hwnd,WM_COPY,0,0)
EndSub
PrivateSubmnuCut_Click()
CallSendMessage(Me.ActiveControl.hwnd,WM_CUT,0,0)
EndSub
PrivateSubmnuPaste_Click()
CallSendMessage(Me.ActiveControl.hwnd,WM_PASTE,0,0)
EndSub
这个技巧能够用于任何实现hWnd属性,并能够响应WM_CUT、WM_COPY和WM_PASTE消息的控件。还应该实现错误处理,以处理不带hWnd属性的控件。->
- 上一篇:VB环境多媒体压缩数据流播放技术
 - 下一篇:VB6实现局域网多站点互连手册
 
精彩图集
    
    精彩文章
    



