精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● VFP>>〖外部引用〗>>关于SendMessage API的一点说明

主题:关于SendMessage API的一点说明
发信人: hunter__fox(雁回西楼)
整理人: foxzz(2003-06-22 13:44:30), 站内信件
这个函数在VC中的声明里,最后一个参数是使用传址方式.
在VB的声明中,是ByRef方式.
如果在VFP中使用,则是应当在声明里加上"@"符号.

但在实际使用中,使用ByRef方式不能完成,需要改为ByVal(传值)方式.
在VFP中同样需要使用传值方式.

但对于不同的版本,此参数的传递方式是否一成不变,我没有做过尝试,如果使用传值方式无效,在排除消息不正确的因素外,可以尝试改变这个参数的传递方式.

在Windows API函数中,并不是所有的函数都保持了向前兼容.
典型的例子就是Shell_NotifyIcon(添加图标到系统托盘)函数.
其中第二个参数的类型为NOTIFYICONDATA,在Window9x版本与Win2k版本中,这种数据类型的声明并不相同,在VB/VFP/VC中使用时,如果不加修改,程序就不能在Win2k环境下向系统托盘添加图标,因为2k的这种类型在原有基础上添加了几个结构.

对于VFP,一般情况下是不提倡使用API函数.只有在必需的情况下,使用API才是可取的.
原因在于,VFP没有解决关于结构的问题,我们一直在使用字符串作为结构的代用品.构造结构是VFP使用API的一个难点.
在使用API时,大家需要有足够的耐心去调试,而且应当知道,有些API函数在VFP中调用是无法实现的,如,需要将函数作为参数的CallWindowProc这样的API函数.

在对VFP有更多了解后,我们也可以发现,有些事情,我们并不需要使用API,如添加系统托盘图标等.这种情况下,我们就应当首先考虑不使用API.

如果大家在使用API时有什么心得体会,欢迎在这里与大家分享.





----
:hunter__fox西
:广 VFP  

[关闭][返回]