halcon控件显示文本的两种方法


//第一种方法,先获取字体,再设置
 public void Disp_Text(HWindowControl win, int Row, int Column, string color, string text)
        {

            try
            {

                HTuple hv_FontWithSize = null;

                //设置字体颜色
                win.HalconWindow.SetColor(color);
                //设置字体风格

                HTuple hv_Font;

               // 获取halcon支持的字体
                HOperatorSet.QueryFont(hWindowControl1.HalconWindow, out hv_Font);

                //50表示字体大小,括号中的数字表示第几种字体
                 hv_FontWithSize = hv_Font.TupleSelect(0) + "-50";//缺点在此,不知道想要的黑体排第几,所以括号里不知道填几

                win.HalconWindow.SetFont(hv_FontWithSize);
                //设置显示的位置(坐标)
                win.HalconWindow.SetTposition(Row, Column);
                //设置显示的内容
                win.HalconWindow.WriteString(text);
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.ToString());
            }
        }

//第二种方法,直接设置字体
 public void Disp_Text(HWindowControl win, int Row, int Column, string color, string text)
        {

            try
            {

                HTuple hv_FontWithSize = null;

                //设置字体颜色
                win.HalconWindow.SetColor(color);
            
                /*setfont算子支持的字体种类
                ["Arial", "Bahnschrift", 
                    "Calibri", "Cambria", 
                    "Cambria Math", 
                    "Candara",
                    "Comic Sans MS", "Consolas", "Constantia", "Corbel", "Courier New", "Ebrima", "Franklin Gothic", 
                    "Gabriola", "Gadugi", "Georgia", "Impact", "Ink Free", "Javanese Text", "Leelawadee UI", "Lucida Console", 
                    "Lucida Sans Unicode", "Malgun Gothic", "Microsoft Himalaya", "Microsoft JhengHei", "Microsoft JhengHei UI", 
                    "Microsoft New Tai Lue", "Microsoft PhagsPa", "Microsoft Sans Serif", "Microsoft Tai Le", "微软雅黑", "Microsoft YaHei UI", 
                    "Microsoft Yi Baiti", "MingLiU-ExtB", "PMingLiU-ExtB", "MingLiU_HKSCS-ExtB", "Mongolian Baiti", "MS Gothic", "MS UI Gothic",
                    "MS PGothic", "MV Boli", "Myanmar Text", "Nirmala UI", "Palatino Linotype", "Segoe MDL2 Assets", "Segoe Print", "Segoe Script", 
                    "Segoe UI", "Segoe UI Emoji", "Segoe UI Historic", "Segoe UI Symbol", "宋体", "新宋体", "SimSun-ExtB", "Sitka Small", "Sitka Text",
                    "Sitka Subheading", "Sitka Heading", "Sitka Display", "Sitka Banner", "Sylfaen", "Symbol", "Tahoma", "Times New Roman", "Trebuchet MS",
                    "Verdana", "Webdings", "Wingdings", "Yu Gothic", "Yu Gothic UI",
                "等线", "仿宋", "楷体", "黑体", "HoloLens MDL2 Assets", "MT Extra", "Buxton Sketch", 
                    "Segoe Marker", "SketchFlow Print", "DejaVu Math TeX Gyre", "Marlett", "default"]
                */

                //50表示字体大小,括号中的数字表示第几种字体,Bold表示粗体,不需要粗体就是"黑体-50"
                          hv_FontWithSize ="黑体-Bold-50";

                win.HalconWindow.SetFont(hv_FontWithSize);
                //设置显示的位置(坐标)
                win.HalconWindow.SetTposition(Row, Column);
                //设置显示的内容
                win.HalconWindow.WriteString(text);
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.ToString());
            }
        }


用法:

Disp_Text(hWindowControl1, 20, 20, "red", "Font set to:");
Disp_Text(hWindowControl1, 20, 300, "green", "OK");

posted @ 2022-05-11 16:34  冰糖小袁子  阅读(2660)  评论(0)    收藏  举报