龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VB开发 >

用SendMessage实现剪贴板操作

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
要使用这一技巧,你就需要声明用于剪切、复制和粘贴的常数: 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属性的控件。->

精彩图集

赞助商链接