wpf中使用ocx控件

    最近需要包装产品,需要将系统的界面进行一下改造,也就所谓的整容吧(整容是很危险的事情哦,听说最近又有人Over了),不过风险虽然存在,但是为了产品更好卖,还是得整容呀,大不了请个好的医生咯。最近在网上查找了很多方法,换肤现在比较常用,不过发现基于WPF来实现更好,再怎么说也是微软下一代的所支持的界面库。

    应该说用WPF开发还是比较简单的,特别是业务逻辑代码能和界面封开,这是相当O的事情了。项目时间比较紧迫,对产品的整容最好是不要涉及到肝脏了。为此,我决定还是使用调用原有的dll和ocx来实现吧,可接下来调用ocx怎么改呢,网上介绍也是迷迷糊糊的,今天弄了一下终于将ocx加入到wpf中,步骤如下:
 
需要先使用regsvr32命令 注册ocx控件。注册完成之后进行如下转换:
    1)借用工具将ocx进行转换,我使用了aximp.exe ( http://msdn.microsoft.com/zh-cn/library/ms748870.aspx) 。打开vs2010下打开命令行。
输入: aximp ocx的路径 /source  (这里加入/source主要是为了生成c#的调用类,用的时候将此类加入到vs工程中即可)
 
运行后将会生成AxXXXLib.dll、XXXLib.dll和 AxXXXLib.cs三个文件。
 
2)将 AxXXXLib.dll、XXXLib.dll通过一下方式加入到工程中
“右键”点击工程-
 
选择第一步中生成的AxXXXLib.dll、XXXLib.dll,点击"OK"就完成了。
 
3)在初始化函数中添加以下代码
public MainWindow()
{
    InitializeComponent();
 
// 创建 host 对象
 System.Windows.Forms.Integration.WindowsFormsHost host = new System.Windows.Forms.Integration.WindowsFormsHost();
 
   // 创建OCX的对象
AxXXXLib axXXX = new  AxXXXLib();
 
//开始初始化ocx对象
axXXX.BeginInit();
 
host.Child = axXXX ;
// 将对象加入到面板中
dockPan.Children.Add(host);
// 结束初始化
axXXX.EndInit();
}
在结束初始化之后再进行其它操作!
 
这样OCX就加入到WPF界面中了。
 
转自:
http://blog.csdn.net/lovesw97/article/details/6576360

参考资料:

1.  http://msdn.microsoft.com/en-us/library/8ccdh774(VS.80).aspx
2.  http://blogs.msdn.com/b/jijia/archive/2007/06/07/wpf-flash-activex. aspx
 

你可能感兴趣的:(wpf中使用ocx控件)