开启左侧

hWindowControl1.HalconWindow上画的线怎么一直保留?

[复制链接]
comszmz 发表于 2020-4-15 13:26:53 | 显示全部楼层 |阅读模式
在hWindowControl1.HalconWindow上
HOperatorSet.DispLine(hWindowControl1.HalconWindow, hv_Height / 2, 0, hv_Height / 2, hv_Width);
当窗体尺寸改变时,线自动清除了,怎么让他保留?
不会是要每次窗体Resize时都要画一次吧。
绝地武士 发表于 2020-4-15 16:00:34 | 显示全部楼层
窗体刷新本来就是数据的重绘,看来楼主还不理解这个概念!
你的电脑每帧65就是每一秒刷新电脑屏幕65次,你每次移动都是在高速重绘,这个你应该知道!

回到这个问题,为什么会消失,你画的那个线只是暂时在内存开辟的图形数据,没有用变量存在来
所以在你移动、拖放改变窗口的时候重绘你的图形数据临时的就无法刷新了!
这个时候你需要把你的Line存到一个HObject变量里面,每次Resize后需要重新Display即可!
这个时候由于在变量里面存储,你的刷新就是在重绘的时候自动也一起显示出来了(需要自己控制)!
这个就是计算机的刷新和重绘机制!
df910105 发表于 2020-12-30 11:59:48 | 显示全部楼层
參考下面關鍵字
set_window_param --> graphics_stack
可以讓object在setpart的時候不會重置視窗
laihuaxun2004 发表于 2022-4-1 21:52:52 | 显示全部楼层
本帖最后由 laihuaxun2004 于 2022-4-1 21:53 编辑

hWindowControl可以通过创建HDrawingObject 的方式 来画ROI, 创建HDrawingObject后附加到Halcon 窗口,可以方便的调整大小,位置或方向。
  1. HOperatorSet.DrawRectangle1(hWindow, out HTuple row1, out HTuple column1, out HTuple row2, out HTuple column2);
  2. obj = HDrawingObject.CreateDrawingObject(HDrawingObject.HDrawingObjectType.RECTANGLE1, row1, column1, row2, column2);
  3. hWindow.AttachDrawingObjectToWindow(obj);
复制代码
zengyiwei 发表于 2022-5-7 14:51:33 | 显示全部楼层
attach_drawing_object_to_window
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表