[摘要]VFP以其强大的面向对象功能,方便易用的界面设计等为广大的微机用户提供了极大的方便,在它的表单中继承了Windows的复制和粘贴功能,从而提高了工作效率,方便了用户。然而当你将表单设置为顶层表单并独...
VFP以其强大的面向对象功能,方便易用的界面设计等为广大的微机用户提供了极大的方便,在它的表单中继承了Windows的复制和粘贴功能,从而提高了工作效率,方便了用户。然而当你将表单设置为顶层表单并独立运行于Windows下,就会发现表单中复制粘贴功能失效,给实际工作造成极大的不便,从而使编制的软件达不到专业水准。 
  通过认真分析与实践,笔者认为,造成这一问题的原因是微软设计VFP时,只考虑了位于系统选单下的表单的复制和粘贴情况,即位于系统选单下的表单可使用复制及粘贴热键,而处于Windows下的表单完全脱离了系统选单的控制,因此复制及粘贴热键失效。 
  解决的办法是可在表单的控件(本文示例为文本框)中,为KeyPress Event编写如下事件处理程序,该事件处理程序首先将选择内容复制到Windows剪贴板上,然后再将剪贴板上的内容添加到控件中。 
  KeyPress Event 
  LPARAMETERS nKeyCode, nShiftAltCtrl 
  if nkeycode=3 
  && CTRL+C 复制 
  —cliptext=this.seltext 
  endif 
  if nkeycode=22 
   && CTRL+V 粘贴 
  do case 
  case this.selstart=0 
  this.value=—cliptext+this.value 
  case this.selstart〉=1 and this.selstart〈=len(this.value) 
  this.value=subs(this.value,1,this.selstart)+ 
  —cliptext+subs(this.value,this.selstart+1) 
  endcase 
  endif 
  thisform.grid1.column1.setfocus() 
  sele recetem 
  if not eof() 
  skip 
  endif 
  thisform.refresh  
关键词:VFP中粘贴顶层表单