回 帖 发 新 帖 刷新版面

主题:[请教] VFP的桌面表单没有方法程序,是否就无法向其中写代码?

VFP的桌面表单其它属性和其它表单差不多,但没有方法程序,是否就无法向其中写代码?
例如说其它表单的RESIZE中可以写代码,表单拉大拉小时,可以通过代码使表单上其它控件位置发生相应的变化,然而VFP桌面表单因无RESIZE方法程序,因而无法达到上述效果,这可让我如何是好?敬请高人指点,给你拜年了!

回复列表 (共10个回复)

沙发

请参考帮助文档的BINDEVENT( ) 函数及示例。


    下列代码将Visual FoxPro主窗口的MouseMove事件绑定到自定义类MyHandler的MyMouseMove方法,绑定后,当在主窗口中移动鼠标时,将显示鼠标的坐标位置。
PUBLIC oHandler       &&注意,请将保存对象的变量设置为全局变量 
oHandler=NEWOBJECT("MyHandler")
 
*!* 将_SCREEN.MouseMove绑定到oHandler.MyMouseMove
=BINDEVENT(_SCREEN,"MouseMove",oHandler,"MyMouseMove")  
 
DEFINE CLASS MyHandler AS Custom   
   PROCEDURE MyMouseMove
       *!* 要保证该方法与_SCREEN.MouseMove有同样的参数设置
       LPARAMETERS nButton, nShift, nXCoord, nYCoord   
       WAIT WINDOW "鼠标坐标:"+STR(nXCoord)+"|"+STR(nYCoord) NOWAIT 
   ENDPROC 
ENDDEFINE

板凳

高家庄,实在是高。[em28]
按照你的指导,参看了BINDEVENT()说明,正在参照说明向软件中嵌入,应该是可以了。
过程中有搞不懂的再向老弟请教,嵌入完了一定再向老弟汇报。
[em45][em45][em45][em45][em45][em45][em45][em45][em45][em45]

3 楼

请教wzxc老弟:测试时下面这两句去掉了出错,但我不理解起什么作用的,子程序套在中间觉得不太合理?
诚挚的感谢!
DEFINE CLASS MyHandler AS Custom   
   PROCEDURE MyMouseMove
      ......
      ......
ENDDEFINE

4 楼

那是自定义类,去掉当然要出错了!!!

5 楼

哦!
那就是用:
DEFINE CLASS MyHandler AS Custom   
ENDDEFINE
做了一个类,
在类中又写了一个子程序:
   PROCEDURE MyMouseMove
      ......
      ......

这样理解可以吗?

6 楼



[img]http://blog.pfan.cn/upfile/201002/20100215124038.gif[/img]

7 楼

千言万语汇成一句话:
祝wzxc老弟及全家虎年幸福安康发大财!

8 楼



[img]http://blog.pfan.cn/upfile/201002/2010021513438.gif[/img]

9 楼

报告wzxc老师:
    您1楼提供的方法和另一帖中提供的SYSMETRIC()函数,我都已经嵌入软件,使得软件界面能适应任何分辨率的屏幕,并且可以拉大缩小,十分理想。特此致以诚挚的感谢!

10 楼


[img]http://ftphi.bccn.net/001/201002/19/61975_12665617137cMg.gif[/img]

我来回复

您尚未登录,请登录后再回复。点此登录或注册