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详解的更多相关文章
- java实现excel的导入导出(poi详解)[转]
java实现excel的导入导出(poi详解) 博客分类: java技术 excel导出poijava 经过两天的研究,现在对excel导出有点心得了.我们使用的excel导出的jar包是poi这个 ...
- poi导出word表格详解 超详细了
转:非常感谢原作者 poi导出word表格详解 2018年07月20日 10:41:33 Z丶royAl 阅读数:36138 一.效果如下 二.js代码 function export_word( ...
- 在java poi导入Excel通用工具类示例详解
转: 在java poi导入Excel通用工具类示例详解 更新时间:2017年09月10日 14:21:36 作者:daochuwenziyao 我要评论 这篇文章主要给大家介绍了关于在j ...
- 跟我学机器视觉-HALCON学习例程中文详解-FUZZY检测用于开关引脚测量
跟我学机器视觉-HALCON学习例程中文详解-FUZZY检测用于开关引脚测量 * This example program demonstrates the basic usage of a fuzz ...
- 跟我学机器视觉-HALCON学习例程中文详解-测量圆环脚宽间距
跟我学机器视觉-HALCON学习例程中文详解-测量圆环脚宽间距 This example program demonstrates the basic usage of a circular meas ...
- 跟我学机器视觉-HALCON学习例程中文详解-开关引脚测量
跟我学机器视觉-HALCON学习例程中文详解-开关引脚测量 This example program demonstrates the basic usage of a measure object. ...
- 跟我学机器视觉-HALCON学习例程中文详解-QQ摄像头读取条码
跟我学机器视觉-HALCON学习例程中文详解-QQ摄像头读取条码 第一步:插入QQ摄像头,安装好驱动(有的可能免驱动) 第二步:打开HDevelop,点击助手-打开新的Image Acquisitio ...
- 跟我学机器视觉-HALCON学习例程中文详解-IC引脚测量
跟我学机器视觉-HALCON学习例程中文详解-IC引脚测量 Lead Measurement: Example for the application of the measure object in ...
- [转]mysqldump备份还原和mysqldump导入导出语句大全详解
FROM : http://www.cnblogs.com/zeroone/archive/2010/05/11/1732834.html mysqldump备份还原和mysqldump导入导出语句大 ...
随机推荐
- Win10下 jdk的安装
jdk 的下载地址 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 在 D 盘 ...
- Java面试 - static 修饰的变量和方法有哪些特点?
1.static修饰的变量和方法,在类加载时即被初始化,可直接通过类名.变量名和类型.方法名进行调用. 2.static修饰的变量,在类加载时会被分配到数据区的方法区.类的实例可共享方法区中的变量.如 ...
- vue element-ui typescript tree报错 === Property 'getCheckedNodes' does not exist on type 'Element | Element[] | Vue | Vue[]'.
import { Tree } from 'element-ui' const ref = <Tree>this.$refs.tree ref.getCheckedNodes()
- SC创建服务编写bat脚本
新建bat脚本,并写入一下文本保存 sc create "DevFast.SupportGPSWarmService" binpath= "%cd%\DevFast.Su ...
- k8s-gitlab搭建
Gitlab官方提供了 Helm 的方式在 Kubernetes 集群中来快速安装,但是在使用的过程中发现 Helm 提供的 Chart 包中有很多其他额外的配置,所以我们这里使用自定义的方式来安装, ...
- SVM的概率输出(Platt scaling)
SVM的概率输出(Platt scaling) 2015-10-22 10:38:19 闲渔Love吉他 阅读数 8121 文章标签: Platt Scaling Calibr 更多 分类专栏: 计算 ...
- awr报告没有数据11.2.0.3
有个朋友,反馈AWR没有数据: 咨询版本:oracle企业版本11.2.0.3 SQL> select * from v$version; BANNER -------------------- ...
- MySQL 常用函数介绍
MySQL 基础篇 三范式 MySQL 军规 MySQL 配置 MySQL 用户管理和权限设置 MySQL 常用函数介绍 MySQL 字段类型介绍 MySQL 多列排序 MySQL 行转列 列转行 M ...
- Golang语言编程规范
Golang语言编程规范 一.说明 编程规范好,可避免语言陷阱,可有利团队协作,有利项目维护. 正常的Go编程规范有两种:编译器强制的(必须的),gofmt格式化非强制的(非必须). Go宣告支持驼峰 ...
- (一)Spring框架基础
一.什么是spring框架 spring是J2EE应用程序框架,是轻量级的IoC和AOP的容器框架,主要是针对javaBean的生命周期进行管理的轻量级容器,可以单独使用,也可以和Struts框架,i ...