halconC++类:HDevWindowStack
C++源码:
// The class HDevWindowStack can be used to emulate the behavior of HDevelop
// graphics windows for HALCON graphics windows. It is primarily intended for
// usage in C++ programs exported from HDevelop programs containing HDevelop
// window operators (e.g. dev_set_window, dev_open_window, dev_close_window...)
class LIntExport HDevWindowStack
{public: // Push handle for new window (dev_open_window)static void Push(const HTuple &win_handle);// Pop handle for closed window (dev_close_window)static HTuple Pop();// Get handle for active windowstatic HTuple GetActive();// Set active window (dev_set_window)static void SetActive(const HTuple &win_handle);// Test if any open window is availablestatic bool IsOpen();// Close all open windowsstatic void CloseAll();};
类HDevWindowStack可以用来模拟HALCON图形窗口的HDevelop图形窗口的行为。它主要用于从包含HDevelop窗口操作符的HDevelop程序中导出的c++程序(例如dev_set_window, dev_open_window, dev_close_window…)
此类包含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(); 关闭所有窗口,遍历底层的句柄队列,一一关闭并销毁
halconC++类:HDevWindowStack相关推荐
- 自己搜集编写的Delphi 通用函数
{ ********************************************************************** } { Currency Common Functio ...
- 继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错? springboot 两种方式稳定解决跨域问题
继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错???springboot 两种方式稳定解决跨域问题! 之前我写了一篇文章,来解决CORS报错 ...
- MybatisPlus忽略实体类中的非数据库字段、JPA忽略实体类中的非数据库字段、HeHibernate忽略实体类中的非数据库字段
mybatis plus忽略映射字段时可以在实体类属性上使用以下注解: @TableField(exist = false):表示该属性不为数据库表字段,但又是必须使用的. @TableField(e ...
- IDEA中根据数据库自动生成实体类,并自定义所生成的实体类中的注解 @Table @Id @...
使用IDEA项目添加Hibernate扩展,生成实体类并配置实体类中的注解 一.使用Hibernate自动生成实体类 1.在项目上右键,选择Add Framework Support找到 Hibern ...
- IDEA自动生成类注解,IDEA作者信息自动生成,IDEA类信息自动生成
在新建类文件的时候自动生成注解,诸如我们常见的那些 作者,创建时间,TODO 等等 将以下格式的代码放在Settings -> File and Code Templates -> Inc ...
- javabean实体类与实体类之间的快速转换
一.Dozer是什么? dozer是一个能把实体和实体之间进行转换的工具.只要建立好映射关系.就像是ORM的数据库和实体映射一样. 使用方法示例如下: // article(PO) -> art ...
- 利用dom4j将实体类转换为对应的xml报文
利用dom4j生成xml报文 目标格式: <?xml version="1.0" encoding="GBK"?><Packet type=& ...
- Idea groovy表生成实体类带注释
Idea groovy表生成实体类带注释 1.点开datasourse,打开idea带的数据库工具,具体添加数据库连接,这里不描述. 这时点击会生成一个poji 这时生成的pojo中是不带中文注释的, ...
- java带参数的方法笔记_具有Java参数的方法的类声明
类声明可以包含在Java中具有参数的方法.演示此过程的程序如下: 示例class Message { public void messagePrint(String msg) { System.out ...
最新文章
- 空间深度学习——ConvLSTM原理及其TensorFlow实现
- haproxy+keepalived应用实战
- Vim不常见但是很实用的命令技巧
- 判断系统是大端还是小段
- 60 SD配置-科目分配-分配总帐科目
- python 3.5安装pywin32
- 拓端tecdat|excel数据分析——贝叶斯分析预测
- python期末考试及答案单引号、双引号和三引号_python脚本中单引号’ 双引号“ 三个单引号‘’‘ 三个双引号”“” 差别 及反斜杠的用法...
- 现代通信原理思维导图--第五章 模拟调制系统
- php全套之七,php程序员工具箱
- G-Dezender批量解密
- HTTP(超文本传输协议)详细解析
- 集五福华为机试python_支付宝集五福,扫一扫用新年送礼好物华为MatePad Pro画的福试试...
- 使用mars3d时第二次进行hls视频融合报错
- aws没有免费套餐服务数据可用
- 关于爱国者***的追踪报道[转]
- MapReduce 原理与实践
- 电脑重装系统后我的电脑图标怎么添加到桌面上显示
- python 携程航班信息查询
- 微信小程序云开发-树洞小程序Treehole(评论帖子/发布话题实现)