Halcon DrawRegion()后会阻塞直到右键按下,请问如何主动取消绘制区域
Aer.软件工程师 2020-04-11 05:26:41
Halcon DrawRegion()后会阻塞直到右键按下,如果在不小心没有按下右键的时候关闭窗口,会陷入卡死,请问如何主动取消绘制区域
发送模拟消息无效,
keybd_event(VK_RBUTTON, 0, 0, 0);
Sleep(500);
keybd_event(VK_RBUTTON, 0, KEYEVENTF_KEYUP, 0);
已取得管理员权限
123点赞收藏1
分享
写回复
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
x_yu_ 2020-09-03
//===============================================================
[DllImport("halcon.dll")]//halcon.dll复制到C:\Windows\System32
static extern void HIOCancelDraw();//退出画操作时,调用此函数
//===============================================================
halcon 学习笔记
1、HsmartWindow 报错问题
2、HwindowCtronl绘制图形未结束又点击绘制导致错误
3、论坛转贴 常见问题
4、找圆找线部分参数设置
5、实现基于形状的模板匹配
6、一维测量-卡尺
7、直线/圆拟合
----------------------------------------------------------------
1-- HsmartWindow 控件除了会调用halcondonet.dll外还会调用halcon.dll,如果程序根目录不存在halcon.dll,则会通过全局变量找到halcon mevtec目录去调用,这样是没有问题的;
如果根目录下存在halcon.dll,则会优先调用根目录下的文件,然后halcon.dll内部如果使用到HsmartWindow的功能,则还会调用一个Hcanvas.dll的文件,如果根目录下没有这个文件则会报错,程序编译后启动过程中报错,
报错内容为:
----------------------------------------------------------------------------------
2- HsmartWindow不支持Draw开头的函数,只能在Hwindow上面画,在执行Draw函数的时候,程序停在该函数位置,未点击鼠标右键确认Draw Region之前,程序会一直停留,此时再执行其他的Draw函数,就会导致在整个流程乱掉,避免这种情况的方法是在每个Draw函数之前都调用一次HalconApi.CancelDraw()函数,结束上次未完成的绘制。