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

原创 2017年02月18日 14:46:02

用 .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


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

05/11/07

今天不错。中午给弄了一下OD,把OD那个什么修改文件的一个菜单问题弄了一下。下午老大也不在,比较爽。据说老D把钱给我打过来了,虽然没有预想的多,但是也不错了。周末可以去找猪头购物去。打算买个大内存,再...
  • nbw
  • nbw
  • 2005-11-08 00:38
  • 571

COM 免注册技术

通常,实例化 COM 组件(包括采用这一技术的 DLL/ActiveX 控件)前,都需要先用 Regsvr32 注册该组件(或控件),从 XP sp2 开始,微软提供了一种采用 manifest(文件...

扩展 vfp9 自带的对象浏览器提取枚举值

Foxer 在使用第三方控件时,常为枚举值犯愁,这里提供一个简单的方法 1. 下载这个修改过的对象浏览器:http://download.csdn.net/detail/dkfdtf/949...

使用 BLOB 类型字段

vfp9 中增加了 blob 型字段,这可是个好东西!用它来存储图像数据最合适,与 SQL 的交换也很顺利,接下来就是使用它了。使用它当然无外乎是显示/打印图像;显示很简单,表单上放一个 Image ...
  • dkfdtf
  • dkfdtf
  • 2008-09-05 23:32
  • 4932

编程实现可执行文件的数字签名验证及证书安装

为何要制作数字签名,请参见我以前的文章 http://dkfdtf.blogbus.com/logs/10896854.html,我最近的一个项目也需要实现自验证功能,狐狸天堂上的金威先生也恰好有这个...
  • dkfdtf
  • dkfdtf
  • 2009-07-14 22:09
  • 9503

让 Anchor 属性拥有设计时行为

用过 vfp9 的人都知道这个好用的新属性,宿主控件大小变化时,其内部控件可以用这个属性来自动调整它们的位置和大小,不用再像 vfp6 中要写代码来调整;不过,大家也看到了,这个属性只是一个运行时行为...

改变 vfp 可执行文件的运行库位置和名称

今天分析了一下如何将 vfp 的 exe 运行时要使用的运行库更名的问题。下面是分析结果,以 vfp9 + 简体中文 Windows 系统为例。我们知道,编译成 exe 的 vfp 程序要加载两个运行...
  • dkfdtf
  • dkfdtf
  • 2009-04-07 17:05
  • 2303

身份证号15位转18位

源自:http://blog.csdn.net/zhanghongju/archive/2009/06/11/4261422.aspx做少量修改,传15位转18位,传17补18位,传18位验证最后一位...
  • dkfdtf
  • dkfdtf
  • 2009-06-26 21:11
  • 1777

转帖:使用 .NET ClickOnce 技术发布和更新 vfp 应用程序

xinjie 最新翻译力作,foxer 从现在开始也可以使用 .Net ClickOnce 技术来发布自己的应用程序,拥有可配置的自动更新方式。来自:http://www.foxsky.net/bbs...
  • dkfdtf
  • dkfdtf
  • 2009-08-09 07:13
  • 2654
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)