예제 #1
0
        public void Repaint(HalconDotNet.HTuple hwndHandle)
        {
            try
            {
                int count = _hObjEntityList.Count;
                InteractiveROI.HObjectEntity hobjentry;

                HalconDotNet.HSystem.SetSystem("flush_graphic", "false"); //不更新图形变量
                HalconDotNet.HOperatorSet.ClearWindow(hwndHandle);

                _grpCntx.LastGCSettings.Clear();
                //显示对应图形上下文的图形对象(图像)
                for (int i = 0; i < count; i++)
                {
                    hobjentry = (InteractiveROI.HObjectEntity)_hObjEntityList[i];
                    if (hobjentry.HObj != null &&
                        hobjentry.HObj.IsInitialized())
                    {
                        _grpCntx.ApplyGraphicSettings(hwndHandle, hobjentry.GCSettings);

                        HalconDotNet.HOperatorSet.DispObj(hobjentry.HObj, hwndHandle);
                    }
                }

                NotifyInfoObserver();

                //显示ROI
                if ((_ROICtrller != null) &&
                    (_ROIPaintMode == HWndCtrller.PAINT_MODE_INCLUDE_ROI))
                {
                    _ROICtrller.PaintData(hwndHandle);
                }

                //显示信息条
                if (_msgLineList != null)
                {
                    count = _msgLineList.Count;
                    ProVision.Communal.MessageLine msgLine;
                    for (int i = 0; i < count; i++)
                    {
                        msgLine = _msgLineList[i];

                        //设置显示文本:
                        ProVision.Communal.Functions.SetDisplayFont(hwndHandle, msgLine.CtxSize, msgLine.CtxFont, msgLine.CtxBold, msgLine.CtxSlant);

                        //显示文本
                        ProVision.Communal.Functions.DispMessage(hwndHandle, msgLine.Context,
                                                                 msgLine.CtxCoordinateSystem, msgLine.Row + RowlEdge * i, msgLine.Col, msgLine.CtxColor, new HalconDotNet.HTuple("false"));
                    }
                }

                HalconDotNet.HSystem.SetSystem("flush_graphic", "true");                        //更新图形变量
                HalconDotNet.HOperatorSet.SetColor(hwndHandle, new HalconDotNet.HTuple("black"));
                HalconDotNet.HOperatorSet.DispLine(hwndHandle, -100.0, -100.0, -101.0, -101.0); //不知何用
            }
            catch (HalconDotNet.HalconException hex) { }
        }
예제 #2
0
        public void Repaint(HalconDotNet.HTuple hwndHandle)
        {
            try
            {
                int count = _hObjEntityList.Count;
                InteractiveROI.HObjectEntity hobjentry;

                HalconDotNet.HSystem.SetSystem("flush_graphic", "false"); //不更新图形变量
                HalconDotNet.HOperatorSet.ClearWindow(hwndHandle);

                _grpCntx.LastGCSettings.Clear();
                //显示对应图形上下文的图形对象(图像)
                for (int i = 0; i < count; i++)
                {
                    hobjentry = (InteractiveROI.HObjectEntity)_hObjEntityList[i];
                    if (hobjentry.HObj != null &&
                        hobjentry.HObj.IsInitialized())
                    {
                        _grpCntx.ApplyGraphicSettings(hwndHandle, hobjentry.GCSettings);

                        HalconDotNet.HOperatorSet.DispObj(hobjentry.HObj, hwndHandle);
                    }
                }

                NotifyInfoObserver();

                if ((_ROICtrller != null) &&
                    (_ROIPaintMode == HWndCtrller.PAINT_MODE_INCLUDE_ROI))
                {
                    _ROICtrller.PaintData(hwndHandle);
                }

                HalconDotNet.HSystem.SetSystem("flush_graphic", "true");                        //更新图形变量
                HalconDotNet.HOperatorSet.SetColor(hwndHandle, new HalconDotNet.HTuple("black"));
                HalconDotNet.HOperatorSet.DispLine(hwndHandle, -100.0, -100.0, -101.0, -101.0); //不知何用
            }
            catch (HalconDotNet.HalconException hex) { }
        }