26.1、.NET與Halcon混合程式設計(滑鼠繪製區域)
方法:《26、.NET與Halcon混合程式設計》中的action函式中新增代'************中的碼即可
Private Sub action()
' Local iconic variables
Dim ho_Image12 As HObject = Nothing '定義一個圖形變數
' Local control variables
Dim
hv_Width
As
HTuple = Nothing, hv_Height
As
HTuple
Dim hv_WindowHandle As HTuple = Nothing '定義控制代碼
' Initialize local and output iconic variables
HOperatorSet.GenEmptyObj(ho_Image12) '
ho_Image12.Dispose()
HOperatorSet.ReadImage(ho_Image12, New HTuple("C:/12.jpg"))
HOperatorSet.GetImageSize(ho_Image12, hv_Width, hv_Height)
Dim jubing As Integer = CType(AxHWindowXCtrl1.HalconWindow.HalconID, Integer)
hv_WindowHandle = CType(jubing, HTuple)
HOperatorSet.SetPart(hv_WindowHandle, 0, 0, hv_Height, hv_Width) '適應視窗顯示
HOperatorSet
'**************************************************************************************** '*************************************************************************************** '****************************************************************************************
'定義一個區域物件和一個影象物件,並建立分配記憶體
Dim ho_ImageReduced As HObject = Nothing
Dim ho_Region As HObject = Nothing
HOperatorSet.GenEmptyObj(ho_Region)
HOperatorSet.GenEmptyObj(ho_ImageReduced)
'清空
ho_Region.Dispose()
ho_ImageReduced.Dispose()
'獲取焦點
AxHWindowXCtrl1.Focus()
'繪製區域,當執行到這裡,程式會卡主。直到用滑鼠在hv_WindowHandle控制元件上繪製完區域右鍵單擊確定後
HOperatorSet.DrawRegion(ho_Region, hv_WindowHandle)
'利用繪製出來的區域剪裁區域
HOperatorSet.ReduceDomain(ho_Image12, ho_Region, ho_ImageReduced)
'把原來圖形視窗的影象清空
HOperatorSet.ClearWindow(hv_WindowHandle)
'顯示影象
HOperatorSet.DispObj(ho_ImageReduced, hv_WindowHandle)
'清空影象記憶體
ho_Region.Dispose()
ho_ImageReduced.Dispose()
ho_Image12.Dispose()
'*************************************************************************************** '****************************************************************************************'****************************************************************************************
End Sub