中国CAD论坛

 找回密码
 注册会员

QQ登录

只需一步,快速开始

凯得学院(CAD8学院)AutoCAD软件下载AutoCAD视频教程等待验证会员请验证邮箱
注册会员指导可以赚钱的网盘CAD习题集AutoCAD技巧
查看: 17|回复: 0
收起左侧

WPF使用梦想OCX插件入门

[复制链接]
发表于 2018-11-8 18:29:44 | 显示全部楼层 |阅读模式 简体中文繁體中文
用QQ等截图工具截图后,点中发贴区直接按Ctrl+V键就可以将截图粘贴到发贴框.

欢迎加入,注册成为会员,享用更多功能,完全免费。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x


获取控件
下载控件安装包
1.png

注册控件
注册控件之前请先退出杀毒软件(如360杀毒软件),双击运行CopyReleaseFile.bat和CopyReleaseFileX64.bat获取批处理文件,并以管理员身份运行RegistMxDrawX.exe 实现批注册或以管理员方式运行控件 \Bin\vc100\RegistMxDrawX.exe 。

新建一个工程
1运行Visual Studio,选择Visual C#,使用Windows 窗体应用 (.NET Framework) 新建一个工程WindowsFormsApp1。在工具箱中找到MxDrawX52 Control勾选并确定,将MxDrawX52 Control拖放至WinForm窗口,此时WindowsFormsApp1\WindowsFormsApp1\obj\Debug路径下会多出两个文件(AxInterop.MxDrawXLib.dllInterop.MxDrawXLib.dll
2.png
3.png
4.png
5.png

3、新建一个WPF工程WpfApp1,把AxInterop.MxDrawXLib.dll、Interop.MxDrawXLib.dll和MxDrawX.ocx(64位系统复制MxDraw52\Bin\vc100x64d\MxDrawX.ocx;32位系统复制MxDraw52\Bin\vc100d\MxDrawX.ocx)分别复制到新建的WPF工程的WpfApp1\WpfApp1\bin\Debug和WpfApp1\WpfApp1\obj\Debug路径下。

6.png

7.png

右键添加引用,浏览引用WpfApp1\WpfApp1\bin\Debug路径下的AxInterop.MxDrawXLib.dllInterop.MxDrawXLib.dll 8.png

在.net下分别添加引用WindowsFormsIntegration和System.Windows.Forms。

9.png

Wpf工程添加引用完成后如下:

10.png

在工具箱中找到MxDrawX52Control勾选并确定。

11.png

完成以上操作之后,工具箱空白处右键选择全部显示常规一栏会出现MxDrawX52Control,如下所示:

12.png

添加程序集引用:

using MxDrawXLib;

实例化对象

// 创建控件对象

AxMxDrawXLib.AxMxDrawX axMxDrawX = new AxMxDrawXLib.AxMxDrawX();

public MainWindow()

{

   InitializeComponent();

   //开始初始化控件对象

   ((System.ComponentModel.ISupportInitialize)axMxDrawX).BeginInit();

   // 创建host 对象

   System.Windows.Forms.Integration.WindowsFormsHost host = new System.Windows.Forms.Integration.WindowsFormsHost() { Child = axMxDrawX };

   // 结束初始化

   ((System.ComponentModel.ISupportInitialize)axMxDrawX).EndInit();

   // 将对象加入到面板中

   mxdraw.Children.Add(host);// mxdraw为Window/Grid名称(name属性)

   axMxDrawX.ImplementCommandEvent += new AxMxDrawXLib._DMxDrawXEvents_ImplementCommandEventEventHandler(this.axMxDrawX_ImplementCommandEvent);

}

在这里以打开文件和画直线为例,打开文件实现代码如下:

// 打开文件.

Microsoft.Win32.OpenFileDialog ofd = new Microsoft.Win32.OpenFileDialog();

ofd.Filter = "dwg 文件(*.dwg)|*.dwg";

if (ofd.ShowDialog() == true)

{

   axMxDrawX.OpenDwgFile(ofd.FileName);

}

axMxDrawX.ZoomAll();

效果如下所示:

13.png

绘制直线实现代码如下:

//绘制直线

private void Drawline()

{

   MxDrawUtility mxUtility = new MxDrawUtility();

   MxDrawPoint point = (MxDrawPoint)(mxUtility.GetPoint(null, "点取第一点:"));

   if (point == null)

   {

       MessageBox.Show("用户取消..");

       return;

   }

   MxDrawPoint point2 = (MxDrawPoint)(mxUtility.GetPoint(point, "点取第二点:"));

   if (point2 == null)

   {

       MessageBox.Show("用户取消..");

       return;

   }

   axMxDrawX.DrawLine(point.x, point.y, point2.x, point2.y);

}

private void Button_Click_1(object sender, RoutedEventArgs e)

{

   axMxDrawX.DoCommand(1);

}

private void axMxDrawX_ImplementCommandEvent(object sender, AxMxDrawXLib._DMxDrawXEvents_ImplementCommandEventEvent e)

{

   if (e.iCommandId == 1)

   {

       // 执行绘直线命令。

       Drawline();

}

}

效果如下所示:

14.png






上一篇:梦想iOS版CAD控件2018.11.07更新

帖子地址: 

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

本站所有资料仅供大家学习之用,商用请务必购买正版版权!有侵权之处,请联系管理员(QQ:119891935)删除!
快速回复 返回顶部 返回列表