HWindowControl
// Local iconic variables
HObject ho_Image, ho_GrayImage, ho_Region;
// Initialize local and output iconic variables
HOperatorSet.GenEmptyObj(out ho_Image);
HOperatorSet.GenEmptyObj(out ho_GrayImage);
HOperatorSet.GenEmptyObj(out ho_Region);
HOperatorSet.ReadImage(out ho_Image, "E://cat.png");
HOperatorSet.Rgb1ToGray(ho_Image, out ho_GrayImage);
HOperatorSet.Threshold(ho_GrayImage, out ho_Region, 128, 255);
hWindowControl1.HalconWindow.DispObj(ho_GrayImage);
hWindowControl1.HalconWindow.DispObj(ho_Region);
ho_Image.Dispose();
ho_GrayImage.Dispose();
ho_Region.Dispose();
Halcon控件中的HSmartWindowControl
和HWindowControl
在功能和使用上有一些明显的区别。以下是对这两个控件的详细比较:
1. 功能特性
-
HSmartWindowControl:
- 显示优化:更注重显示性能,图片可以缩放和拖拽。
- 鼠标交互:提供了预制的鼠标交互功能,如双击图像会自适应大小,鼠标滚轮控制图像缩放,以及用鼠标选中图像进行移动。
- 集成性:可以像其他控件一样使用,例如嵌入到TabControl和ScrollViewer中,也能被其他控件遮挡。
- 自动调整:控件能无闪烁地自动rescale,在窗口双击后能复位视图。
-
HWindowControl:
- 向后兼容:主要是为了向后兼容而设计的旧控件。
- 基本功能:虽然也提供了图像显示的基本功能,但在交互性和优化方面不如
HSmartWindowControl
。
2. 使用方法
- HSmartWindowControl:在C#的Windows Forms或WPF中使用时,可以通过添加鼠标滚轮事件的回调来实现特定的交互功能。
- HWindowControl:虽然使用方法与
HSmartWindowControl
类似,但由于其较旧的设计,可能在某些方面不如HSmartWindowControl
灵活和方便。
3. 推荐使用
根据参考文章4的建议,强烈建议使用HSmartWindowControl控件,因为它提供了更丰富的功能和更好的用户体验。而HWindowControl
则主要作为向后兼容的选项存在。
总结
HSmartWindowControl
和HWindowControl
在Halcon控件中分别代表了不同的图像显示和控制方案。HSmartWindowControl
以其优化的显示性能、丰富的鼠标交互功能和良好的集成性而备受推荐,而HWindowControl
则主要面向需要向后兼容的场景。在设计和开发基于Halc