用GEF实现过拖拽例子的朋友都应该知道拖拽用的是CustomXYLyoutEditPolicy实现的,改变图元大小也是它实现的,那么我们就在这里做文章了
首先重写CustomXYLayoutEditPolicy中的createChildEditPolicy方法,代码如下
@Override
protected EditPolicy createChildEditPolicy(EditPart child) {
// TODO Auto-generated method stub
return new NeSelectionHandlesEditPolicy();
}
然后新建NeSelectionHandlesEditPolicy继承ResizableEditPolicy,实现createSelectionHandles方法,代码如下:
@Override
protected List<MoveHandle> createSelectionHandles() {
final List<MoveHandle> handle = new ArrayList<MoveHandle>();
handle.add(new MoveHandle((GraphicalEditPart) getHost()) {
protected void initialize() {
super.initialize();
setBorder(new LineBorder(1) {
public void paint(IFigure figure, Graphics graphics,
Insets insets) {
tempRect
.setBounds(getPaintRectangle(figure, insets));
if (getWidth() % 2 == 1) {
tempRect.width--;
tempRect.height--;
}
tempRect.shrink(getWidth() / 2, getWidth() / 2);
graphics.setLineWidth(getWidth());
if (getColor() != null)
graphics.setForegroundColor(getColor());
// draw roundRectangle with red color
graphics.setAntialias(SWT.ON);
graphics.setForegroundColor(ColorConstants.red);
graphics.drawRectangle(tempRect);
}
});
// add resize handle
// ResizableHandleKit.addHandle((GraphicalEditPart) getHost(),
// handle, PositionConstants.EAST);
// ResizableHandleKit.addHandle((GraphicalEditPart) getHost(),
// handle, PositionConstants.SOUTH);
// ResizableHandleKit.addHandle((GraphicalEditPart) getHost(),
// handle, PositionConstants.WEST);
// ResizableHandleKit.addHandle((GraphicalEditPart) getHost(),
// handle, PositionConstants.NORTH);
}
});
return handle;
}
带注释的那几行则是与句柄有关的,大家自己试试吧
分享到:
相关推荐
易语言取图元文件源码,取图元文件,取指针,置指针,方法_置指针,new,delete,销毁,创建自窗口句柄,创建自DC,创建自图像,获取DC,释放DC,取混合模式,置混合模式,取渲染原点,置渲染原点,取混合品质,置混合品质,置平滑模式,...
例9.1展示了一个使用句柄和`set`函数的例子,可能涉及了改变对象颜色、线型或位置等属性,进一步强化了句柄图形的操作技巧。 此外,章节还提到了用`set`函数列出可能的属性值,这对于开发者来说非常有用,因为它...
图元文件格式是计算机图形学领域的一个重要概念,主要用于存储由绘图指令组成的图像数据,以便在不同的设备上实现一致的图像渲染效果。在本文中,我们将深入探讨元文件(Metafiles)的概念、特点及其在Microsoft ...
在DXF文件结构中,有一些固定的组码,它们的用途始终不变,比如-1表示图元名,0表示图元类型,5表示图元句柄,8表示图层名。而有些非固定的组码,如10和20,它们的含义会根据上下文变化,可以表示不同图元的点坐标。...
GetFileType 在给出文件句柄的前提下,判断文件类型 GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息 GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的...
- **5**:图元句柄,用于唯一标识图元,由16个十六进制数字组成。 - **6**:线型名,用于指定图元使用的线型。 - **7**:文字样式名,用于指定图元使用的文字样式。 - **8**:图层名,用于指定图元所在的图层。 - **...
3. **如何获取选中图元的属性值?** 通过`Gisedit1.SelectGraphics`选择图元后,可以编写交互操作,如双击或拉框查询。双击时调用`nearlin`,拉框时使用`rectasktolist`获取实体号列表,然后通过实体号读取属性值。...
`Disable`可以禁用控件,`Group`用于创建分组,`Tab stop`让控件在按下TAB键时获得焦点,`Help ID`用于关联帮助ID,`Client edge`和`Static edge`分别创建内凹和实心边框效果,`Modal frame`呈现3D效果,`...
1. **CloseEnhMetaFile & CloseMetaFile**:分别用于关闭增强型和标准图元文件设备上下文,同时返回新建的图元文件句柄。 2. **CreateEnhMetaFile & CreateMetaFile**:创建增强型或标准的图元文件设备上下文,用于...
- **HENHMETAFILE**:Windows API中的Windows增强图元文件对象句柄。 - **LongWord**:Delphi中的同义词。 - **应用场景**:用于表示增强图元文件对象的句柄。 ##### 40. HFONT - LongWord - **HFONT**:Windows ...
编程模式的改变 15 线条、曲线和图形 19 矢量图概览 19 钢笔、线条和矩形 20 椭圆和弧 22 多边形 22 基数样条 23 贝塞尔样条 24 路径 25 画刷和填充图形 27 开放与闭合曲线 29 区域 30 裁剪 31 路径平直化 32 线条和...
编程模式的改变 15 线条、曲线和图形 19 矢量图概览 19 钢笔、线条和矩形 20 椭圆和弧 22 多边形 22 基数样条 23 贝塞尔样条 24 路径 25 画刷和填充图形 27 开放与闭合曲线 29 区域 30 裁剪 31 路径平直化 32 线条和...
缩放时使用插值模式控制图像质量 73 创建缩略图像 75 采用高速缓存位图来提高性能 76 通过避免自动缩放改善性能 76 读取图像元数据 77 使用图像编码器和解码器 83 列出已安装的编码器 83 列出已安装的解码器 ...
编程模式的改变 15 线条、曲线和图形 19 矢量图概览 19 钢笔、线条和矩形 20 椭圆和弧 22 多边形 22 基数样条 23 贝塞尔样条 24 路径 25 画刷和填充图形 27 开放与闭合曲线 29 区域 30 裁剪 31 路径平直化 32 线条和...
在AutoLISP语言中,图形对象被称为图形元素(简称图元),属于AutoLISP数据类型,一般使用图元名称或句柄(Handle)来标识一个图元,在引用一个数据库对象时,可以通过三种途径:图元名称ID、句柄(Handle)、指针(Pointer...
- **使用颜色重映射表**:使用颜色映射表改变图像的颜色。 - **打印**:将GDI+图形输出到打印机。 - **将GDI+输出至打印机**:直接将GDI+图形发送到打印机。 - **显示一个打印对话框**:显示用户可以选择打印选项的...
假若在相同位置画相同半径的两个圆,查询后会发现它们的句柄值是不同的,因此,可以将句柄值作为图元的识别码。 在 DWG 中,图形对象并不直接存贮属性数据,相反,对属性数据的存贮是通过图形的扩展数据 XDATA 来...