1. 程式人生 > 其它 >halcon控制元件顯示文字的兩種方法

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");