halcon导出类---HDevWindowStack详解

  在HDevelop中编写好的程序在导出时,Halcon会帮我们转换成我们需要的语言,比如C++。例:HDevelop中有如下语句需要导出:

  dev_close_window()

  Halcon导出成C++语言就成了如下语句:

  if (HDevWindowStack::IsOpen())
    close_window(HDevWindowStack::Pop());

  了解MFC的应该不难理解,这两句在底层做了什么!下面让我来讲解一下,呵呵

  首先来看看HDevWindowStack这个类,其实这个类很简单,来看下头文件:

class LIntExport HDevWindowStack
{
public:  

  static void Push(const HTuple &win_handle);
  static HTuple Pop();       // no window open -> return empty tuple
  static HTuple GetActive(); // no window open -> return -1
  static void SetActive(const HTuple &win_handle); // no window open -> done
  static bool IsOpen();
  static void CloseAll();
};

  只有6个静态方法,下面一一讲解此6个方法:

  

static void Push(const HTuple &win_handle);   众所周知,要想对某一窗口操作,必须知道窗口的句柄(可能这里说的太绝对,duilib除外),那么halcon采用了前者的思想,它底层就维护了这样一个窗口句柄,当然图形显示的句柄可能不止一个,所以这里的参数使用HTuple,这个结构就像一个水桶结构一样,可以装其他不同类型的数据结构。HTuple是HALCON跨平台的基础。如果没有HTuple,halcon什么也做不到!言归正传,此方法就是将此句柄下发给halcon,halcon将此句柄保存起来,以后便可对此句柄所指的窗口进行任何操作,包括销毁这个窗口!
 static HTuple Pop();  这个方法就是销毁这个句柄和句柄所指的窗口了,没什么好说的,如何销毁的,这里我只能猜一下:halcon底层维护了一个句柄队列,每Push一个句柄,在队列中添加一个句柄,相反每Pop一次,销毁这个句柄所指向的窗口,正如文中开始的两句话,首先判断窗口是否打开,如果打开了,就调用此Pop方法,销毁窗口,在后文中将重新打开窗口!
 static HTuple GetActive(); 此方法就是从halcon的句柄队列中获取一个处于激活状态的窗口句柄,用于绘图操作,比如显示图像:read_image(),再调disp_obj(),当然参数是这里获取的窗口句柄
static void SetActive(const HTuple &win_handle);  功如其名,就是将某一个句柄所指的窗口处于激活状态,这个我在halcon中暂时没有用到。
static bool IsOpen();  判断某一窗口是否打开,文章开头有使用,如果打开了,则关闭
static void CloseAll(); 关闭所有窗口,遍历底层的句柄队列,一一关闭并销毁

added by xiejl
 

  

halcon导出类---HDevWindowStack详解,布布扣,bubuko.com

时间: 2024-10-21 10:53:26

halcon导出类---HDevWindowStack详解的相关文章

java实现excel的导入导出(poi详解)[转]

java实现excel的导入导出(poi详解) 博客分类: java技术 excel导出poijava 经过两天的研究,现在对excel导出有点心得了.我们使用的excel导出的jar包是poi这个阿帕奇公司的一个项目,后来被扩充了.是比较好用的excel导出工具. 下面来认识一下这个它吧. 我们知道要创建一张excel你得知道excel由什么组成,比如说sheet也就是一个工作表格,例如一行,一个单元格,单元格格式,单元格内容格式…这些都对应着poi里面的一个类. 一个excel表格: HSS

Linux学习笔记--Linux文件管理类名利详解

Linux文件管理类命令详解 目录管理: ls.cd.pwd.mkdir.rmdir.tree 文件管理: touch.stat.file.rm.cp.mv.nano 日期管理: touch.clock.hwclock.cal 查看文本: cat.tac.more.less.head.tail cat:连接并显示 -n:在显示时显示每一行的行号 -E:在每行结束处显示 $ Ctrl+C:结束命令 分屏显示: more.less more:向后翻 less: q退出命令 head:查看前n行 ta

Java记录 -22- Java的基类Object详解

Java的基类Object详解 Java的JDK文档要经常查阅使用,最好查看英文的文档. java.lang.Object 类,java.lang包在使用的时候无需显示导入,编译时由编译器自动帮助我们导入. API(Application Programinga Interface),应用编程接口. Object obj = new Object(); System.out.println(obj); System.out.println(obj.toString()); 上面打印的两个内容一样

CSS3伪类选择器详解

前面花了两节内容分别在<CSS3基本选择器>和<CSS3属性选择器详解>介绍了CSS3选择器中的基本选择器和属性选择器使用方法,今天要和大家一起学习CSS3选择器中的第三部分,也是最后一部分——伪类选择器.伪类选择器对于大家来说最熟悉的莫过于:link,:focus,:hover之类的了,因为这些在平时中是常用到的伪类选择器,那么先和大家一起简单总结一下CSS中常用的伪类选择器的使用方法,最后把重心放到CSS3新增加的":nth-child"选择器的使用方法.

C# Oracle数据库操作类实例详解

本文所述为C#实现的Oracle数据库操作类,可执行超多常用的Oracle数据库操作,包含了基础数据库连接.关闭连接.输出记录集.执行Sql语句,返回带分页功能的dataset .取表里字段的类型和长度等,同时还有哈稀表自动插入数据库等高级任务.需要特别指出的是:在执行SQL语句,返回 DataReader之前一定要先用.read()打开,然后才能读到数据,再用hashTable对数据库进行insert,update,del操作,注意此时只能用默认的数据库连接"connstr". 本文

25.Unity3D手机中Input类touch详解-Unity触屏事件解析到底(Twisted Fate)

首先贴一下Unity支持的模型文件类型,以前没有收集过. Unity支持两种类型的3D文件格式: 1.  通用的"出口型"3D文件 如.fbx..dae..3ds..dxf..obj等文件格式. 2.  3D软件专用的3D文件格式 如Max, Maya, Blender,Cinema4D, Modo, Lightwave & Cheetah3D 等软件所支持的格式,如.MAX, .MB, .MA等等. Unity3D手机中Input类touch详解: 1.Input.touch

玩转CSS3,嗨翻WEB前端,CSS3伪类元素详解/深入浅出[原创][5+3时代]

1.博客背景 在我的上一篇博客中, 很多园友提出说对css3"画图"不是很理解, 在跟他们私聊了一段时间以后,加上自己在开始自学css3的时候的疑惑,我觉得大家之所以不是很理解主要是因为对伪元素不太了解,介于画图和CSS3里一些高大上的特效用的比较广泛的伪类元素就是::before 和 ::after, 写这篇博客主要也是为了起到一个敲门砖的作用,所以本篇博客主要是讲::before 和 ::after.那么就让我们一起来聊聊伪元素吧. 2.CSS历史 伪元素实际上在CSS1(CSS1

qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)

原博主博客地址:http://blog.csdn.net/qq21497936本文章博客地址:http://blog.csdn.net/qq21497936/article/details/78516201 qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等) 本学章节笔记主要详解Item元素(上半场主要涉及anchors锚),因为所有可视化的界面元素都继承于Item,熟悉Item后,不同的继承子类,有其定制的属性(从几个到几十个不等). <Qt实用技巧:在Qt Gui程

Properties类使用详解

Java Properties类使用详解 概述 Properties 继承于 Hashtable.表示一个持久的属性集,属性列表以key-value的形式存在,key和value都是字符串. Properties 类被许多Java类使用.例如,在获取环境变量时它就作为System.getProperties()方法的返回值. 我们在很多需要避免硬编码的应用场景下需要使用properties文件来加载程序需要的配置信息,比如JDBC.MyBatis框架等.Properties类则是properti