ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

学习Halcon(一)——使用HALCON/.NET开发程序(一)

2021-05-29 22:33:17  阅读:639  来源: 互联网

标签:控件 鼠标 Halcon HSmartWindowControl WindowControl NET HALCON


参考

Chatper 10, solution_guide_i.pdf, Halcon 17.12


HALCON/.NET 和 .NET Framework版本

版 本 路 径 支持WPF 支持Client Profiles
.NET Framework 2.0 %HALCONROOT%\bin\dotnet20 No No
.NET Framework 3.5 %HALCONROOT%\bin\dotnet35 Yes No

在程序中使用 HALCON/.NET

将 HALCON/.NET 控件添加到工具箱中

  • 在工具箱窗口点击右键,选中“选择项(I)...”
    image
  • “选择工具箱项”窗口点击“浏览”按钮。
    image
  • 选中指定版本的 HALCON/.NET,再点击“打开”按钮。
    image
  • 工具箱中会出现“HSmartWindowControl”“HWindowControl”2个图标。
    image
  • 强烈建议使用“HSmartWindowControl”控件;“HWindowControl”是旧控件,主要为了向后兼容。

添加 HALCON/.NET 引用

  • 添加“HSmartWindowControl”后,自动添加了 HALCON/.NET 引用
  • 手动添加引用:
    右键点击“解决方案”-“引用”,点击“添加引用(R)...”。
    image
    点击“浏览”按钮。
    image
    选中指定版本的 HALCON/.NET,再点击“打开”按钮。
    image
    点击“确定”按钮。
    image

指定名字空间

编程环境 代码
C# using HalconDotNet;
VB .Net Imports HalconDotNet
C++/CLI using namespace HalconDotNet;

使用 HALCON/.NET 控件进行可视化编程

Windows Forms 中使用 HSmartWindowControl,在 WPF 中使用 HSmartWindowControlWPF

HSmartWindowControl 对比 HWindowControl 的优点:

  • 可以像其他控件一样使用(比如,能嵌入到TabControlScrollViewer中,能被其他控件遮挡)。
  • 提供了预制的鼠标交互(可以移动窗口中的内容,并使用鼠标滚轮进行缩放操作)。在窗口双击后能复位视图。
  • 控件能无闪烁地自动rescale。

使用 HSmartWindowControl 时,需要添加一些代码:

// 添加鼠标滚轮事件的回调
private void WindowControl_Load(object sender, EventArgs e)
{
    this.MouseWheel += my_MouseWheel;
}
// 发送鼠标相对坐标发给 HSmartWindowControl
private void my_MouseWheel(object sender, MouseEventArgs e)
{
    Point pt = WindowControl.Location;
    MouseEventArgs newe = new MouseEventArgs(e.Button, e.Clicks,
    e.X - pt.X, e.Y - pt.Y, e.Delta);
    WindowControl.HSmartWindowControl_MouseWheel(sender, newe);
}

其他可以使用的事件:

  • Click
  • GotFocus, LostFocus
  • MouseEnter, MouseLeave, MouseHover
  • Resize, SizeChanged
  • KeyDown, KeyUp, KeyPress

部分算子不支持 HSmartWindowControl

  • draw_*
  • get_mbutton(_subpix)
  • get_mposition(_subpix)

HSmartWindowControl 属性说明

  • HImagePart:图像在窗口上显示的区域。
  • HMoveContent:是否可以用鼠标拖拉显示的内容。
  • HZoomContent:是否可以用鼠标滚轮对显示的内容进行缩放。
  • HZoomFactor:指定缩放时的步长。
  • HKeepAspectRatio:是否固定图像的高宽比。
  • HDrawingObjectsModifier:是否使用Alt、Ctrl或Shift来配合鼠标进行交互控制。
  • HDoubleClickToFitContent:双击是否可以调整显示内容大小来适配窗口尺寸。
    • 自动将图像大小和窗口适配的代码:WindowControl.HalconWindow.SetPart(0, 0, -2, -2);
    • 将图像大小设置得和窗口一样:WindowControl.SetFullImagePart(null);
    • 显示图像:WindowControl.HDisplayCurrentObject = new HImage("fabrik");

标签:控件,鼠标,Halcon,HSmartWindowControl,WindowControl,NET,HALCON
来源: https://www.cnblogs.com/octoberkey/p/14825596.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有