vfp 使用 .Net 系统自带的组件

来源:互联网 发布:淘宝客服专用语言 编辑:程序博客网 时间:2024/05/21 21:37

用 .Net 语言写 WinForm 应用时,很多系统控件都带有很漂亮的样式,今天休息随便在网络上逛逛,又看到 DougHennig 的 Call .Net Code from VFP 的文章,看到其中调用 OpenFileDialog 的代码,界面确实不错,可惜作者采用的方法是先用 .Net 生成一个 DLL,再给 vfp 使用,有了这个组件,还有必要另外用 C# 再写一个 COM 来调用吗?转到出品  wwDotnetBridge 的西风公司网页,大致重温了下这个组件的功能和用法,然后尝试用 vfp 实现了直接用这个组件来调用 OpenFileDialog 类的方法。

用 vfp 自带的 GetFile 函数的界面是这样:



用 .Net 组件的界面是这样:类定义参见:OpenFileDialog 类



对于选择文件夹,如果使用 .Net 提供的 FolderBrowserDialog 类,与 vfp GetDir 函数带 BIF_NEWDIALOGSTYLE 参数的样式没有区别;如果想显示与上面相似的样式,则需要使用微软提供的扩展库 Microsoft Windows API Code Pack 才行,样式如下:



联想到之前论坛上网友要实现的 hmac 简约算法,直接用这个组件调用 .Net 类,也可以很容易的实现这个算法:
类定义参见:HMAC 类



示例代码:http://download.csdn.net/detail/dkfdtf/9758533  (重要:下载后右击压缩包,属性 -> 解除锁定,然后再解压,否则, .Net 会阻止装入 wwDotNetBridge.dll)


/* -------------------------------------------------------------------------------------------------

补充:对于重载过的枚举值,这个组件指定起来还真是有些麻烦,例如,上面示例中,如果想指定初始文件夹为桌面,.Net 语言一句就搞掂:

OpenFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
然而使用这个组件来指定,却需要这样:

m.oo = m.oDotNet.CreateComValue()m.cc = m.oDotNet.InvokeStaticMethod('System.Environment', 'GetFolderPath' ;, m.oo.SetEnum('System.Environment.SpecialFolder.Desktop'))m.oDotNet.SetProperty(m.oDlg, 'InitialDirectory', m.cc)
---------------------------------------------------------------------------------------------------*/


参考连接:

1.  Calling .NET Code from VFP the Easy Way

2.  Calling .NET Components from Visual FoxPro with wwDotnetBridge 

3.  .NET Interop for Visual FoxPro made easy

4. Class wwDotNetBridge - West Wind Client Tools


1 0
原创粉丝点击