CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

添加浮出控件

2022-12-31 09:00| 发布者: admin| 查看: 258| 评论: 0|来自: AutoCAD

自定义浮出控件工具使用形状包(而不是单个图标)来表示浮出控件调色板上的多个工具。在大多数情况下,这意味着您必须创建添加到 ATC 目录的映像。但是,如果浮出控件只需要标准 AutoCAD 命令,则可以使用 AutoCAD 的预定义形状目录之一。浮出控件工具可以使用shapes.atc文件中描述的任何形状包。

如果您希望创建自己的形状目录,该类将再次简化任务。下面概述了如何创建新的形状目录和浮出控件工具。AcadToolImpl

创建新的浮出控件工具(选项板示例)

  1. 创建新工具:
    CComObject<CBoltTool> tool;
  2. 使用函数创建形状目录:AcadToolImpl::CreateShapeCatalogATC()
    AcTcPackage* pShapePackage=tool.CreateShapeCatalogATC("Bolt Flyout Catalog");
  3. 将工具的属性设置为定义其中一个形状的值。
  4. 调用函数,将步骤 2 中的形状包指针作为第一个参数传递。如果希望形状使用工具默认图像以外的图像,请将所需图像的资源 ID 作为第二个参数传递。AcadToolImpl::CreateToolATC()
    if(!tool.CreateToolATC(pShapePackage,"IDB_BOLTALUMINUM"))
        acutPrintf("\nFailed to create a Tool instance\n");
  5. 对目录中的每个形状重复步骤 3 和 4。
  6. 将工具添加到形状包后,调用以创建浮出控件工具:AcadToolImpl::CreateFlyoutToolATC()
    if(!tool.CreateFlyoutToolATC(pPalette,pShapePackage))
        acutPrintf("\nFailed to create a Flyout Tool instance\n");

对于SimpleTool项目,可以使用 AutoCAD 的预定义形状包之一更轻松地创建浮出控件工具。添加一个函数调用来创建形状目录,并添加另一个函数调用来创建浮出控件工具。下面的示例使用名为“*AutoCADShapes”的包来创建形状目录。

将预打包的浮出控件工具添加到 SimpleTool 项目

  1. SimpleTool项目中,转到 CREATESIMPLE AutoCAD 命令的命令处理程序。
  2. 在函数调用之后立即将以下两行添加到命令实现中:CreatePaletteATC()
AcTcPackage* pPackage = tool.CreateShapeCatalogATC("*AutoCADShapes");
tool.CreateFlyoutToolATC(pPalette, pPackage);

以下是修改后的命令处理程序的完整列表:

static void asdkSimpleToolPalette_CREATESIMPLE(void)
{
  CComObject<CSimpleTool> tool;
  if (SUCCEEDED(tool.New()))
  {
      AcTcCatalog* pCatalog = tool.CreateStockToolATC(_T(“SimpleCatalog”));
      AcTcPalette* pPalette = tool.CreatePaletteATC(pCatalog, _T(“SimplePalette”));
      AcTcPackage* pPackage = tool.CreateShapeCatalogATC("*AutoCADShapes");
      tool.CreateFlyoutToolATC(pPalette, pPackage);
      tool.CreateCommandToolATC(pPalette, “Line”, “IDB_TOOL1”, “_LINE ”);
      tool.CreateToolATC(pPalette);
      AcTcGetManager()->LoadCatalogs(); // Refresh the palette in
                                        // AutoCAD
  }
}

对于浮出控件工具,可以显示一个特殊属性,允许用户选择要显示的形状。需要添加一个名为浮出控件的新接口属性,然后将条目添加到浮出控件属性映射。

添加浮出控件属性支持

  1. 使用 Visual Studio 的 ATL 向导,添加一个名为 newproperty 的 newproperty,该属性支持两者和函数。BSTRFlyoutgetput
  2. 打开SimpleTool.idl文件。
  3. 找到新的浮出控件属性声明,并记下其属性 ID。
  4. SimpleTool.h 中,使用 Flyout 属性的属性 ID 作为其参数,在宏行之间添加以下条目:BEGIN_FLYOUT_SPECIFIC_MAP()END_FLYOUT_SPECIFIC_MAP()

    FLYOUT_ENTRY(2)

    注意:不要为浮出控件属性的访问器提供声明或实现代码。

要查看浮出控件属性的效果,请重新启动 AutoCAD。当工具选项板出现时,右键单击浮出控件工具,然后选择“属性”菜单项。在“工具属性”对话框的“常规”部分中,应会看到一个名为“浮出控件”的新属性。该对话框显示“选择命令”提示符,而不是属性值。单击此提示将显示一个省略号按钮,用于启动“浮出控件选项”对话框。此对话框允许用户确定浮出控件菜单中显示的形状。

该类预定义浮出控件属性。还可以定义自己的特定于浮出控件的属性,并在映射中为这些属性提供条目。这些属性仅适用于引用浮出控件工具的浮出控件形状。如果浮出控件包中的形状引用其他工具对象,则属性不适用于这些形状。AcadToolImpl


路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-28 02:06

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部