最近需要包装产品,需要将系统的界面进行一下改造,也就所谓的整容吧(整容是很危险的事情哦,听说最近又有人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通过一下方式加入到工程中
“右键”点击工程-<Add Reference
选择第一步中生成的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
参考资料:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现