控件在.net下有两种:
HSmartWindowControl (Windows Forms 窗体应用)
HSmartWindowControlWPF (WPF)
与HWindowControl相比,HSmartWindowControl提供了几个优势:
1.它像任何其他控件一样使用(例如,它可以嵌入在TabControls或ScrollViewers中,或者用其他控件覆盖)。
2.提供预定义的鼠标交互(使用鼠标滚轮移动窗口内容和缩放)。双击窗口可以重置视图。
3.控件会自动重新缩放,不会闪烁。
与HSmartWindowControlWPF不同,HSmartWindowControl需要回调才能使用鼠标滚轮进行缩放:
- private void WindowControl_Load(object sender, EventArgs e)
- {
- this.MouseWheel += my_MouseWheel;
- }
复制代码
此外,相对于HSmartWindowControl的左上角,您需要转换鼠标坐标。
- private void my_MouseWheel(object sender, MouseEventArgs e)
- {
- Point pt = windowControl.Location;
- MouseEventArgs newe = new MouseEventArgs(e.Button, e.Clicks,
- e.X - pt.X, e.Y - pt.Y, e.Delta);
- windowControl.HSmartWindowControl_MouseWheel(sender, newe);
- }
复制代码
使用智能窗口控件,可以触发以下事件并对其做出反应:
- Click
- GotFocus, LostFocus
- MouseEnter, MouseLeave, MouseHover
- Resize, SizeChanged
- KeyDown, KeyUp, KeyPress
复制代码
并非所有的算子都可以正常使用,不支持以下算子:
- draw_nurbs, draw_nurbs_mod, draw_nurbs_interp, draw_nurbs_interp_mod
- drag_region1, drag_region2, drag_region3
- get_mbutton(_subpix), get_mposition(_subpix)
复制代码
相应的,应该使用drawing object相关的算子(非交互式)。
- dev_get_window (WindowHandle)
- create_drawing_object_circle (100, 100, 80, DrawID)
- attach_drawing_object_to_window (WindowHandle, DrawID)
- get_drawing_object_params (DrawID, ['row','column','radius'], GenParamValue)
- detach_drawing_object_from_window (WindowHandle, DrawID)
复制代码
异常处理对象为HErrorNotify |