1. 程式人生 > 其它 >26.1、.NET與Halcon混合程式設計(滑鼠繪製區域)

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

= Nothing '定義寬度與高度控制變數-用來存放影象的大小

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

.DispObj(ho_Image12, hv_WindowHandle) '第一個引數是要顯示的圖形,第二個引數是顯示的控制代碼

 

'**************************************************************************************** '*************************************************************************************** '****************************************************************************************

 

'定義一個區域物件和一個影象物件,並建立分配記憶體

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