皎列产品平台 使用帮助

CADViewX 详细图解使用手册

控件使用与应用集成

图解手册修订:2026 年 10 月 1 日 · 当前程序 2026.10.01.091222 · 截图来源逐幅说明

查看产品详情手册中心软件下载快速上手注册与授权

根据页签、按钮名称和界面位置阅读图下说明;操作先后顺序以正文步骤为准。

图解手册于2026年10月1日统一更新为连续截图、操作步骤和结果核对。当前正式程序包为2026.10.01.091222;历史截图保留当时版本,演示授权及源码演示在图下注明。请完整解压官网下载包,再按自己的实际文件、权限和状态操作。

本手册按部署、宿主集成、加载图纸和交付复核的顺序,说明CADViewX x86 ActiveX/OCX。图解使用既有真实VB6、Excel工作表和VBA UserForm宿主取证,并补充打开、事件、图层、坐标、位图输出及错误状态的局部细节;每幅图列出实际历史来源。授权界面是不可激活的隔离演示。本轮手册改造未重新完成所有客户Office宿主、注册和签名验收,正式部署按相应章节在目标电脑验证。当前完整开发包以下载中心版本为准。

官网 ZIP 中控件文件名为 CadViewX.ocx,其公开类型库、控件类和示例代码仍按包内兼容身份使用;不要根据 ZIP 名称自行改 ProgID、CLSID 或事件声明。CADViewX 网页预览使用独立产品入口,查看方式见第十章。

1. 开始前准备正确的控件包

CADViewXJL 面向 Windows 上的 32 位宿主,配套独立 x64 解析器。典型集成场景为 VB6 窗体、32 位支持 ActiveX 的桌面程序。64 位宿主不能直接加载这个 x86 OCX;配套 x64 解析器也不会把 OCX 自动变成 64 位控件。

完整保留以下文件,不要只复制 OCX:

文件作用
CadViewX.ocx官网包中的 32 位控件及内嵌类型库
CADViewXJLParser.exe负责图纸读取的独立解析器,默认所有宿主使用
register-user.cmd / unregister-user.cmd当前用户注册及注销
register-machine-admin.cmd / unregister-machine-admin.cmd管理员执行的全机器注册及注销
VB6App.exe.manifest.template终端免注册 COM 清单模板
README.txt、验证结果与第三方声明分发说明及对应构建证据

本版默认 AlwaysUseParserProcess=True:无论宿主是独立 EXE、Excel、Word、PowerPoint 或其他 32 位容器,DWG、DXF 和支持的图片都交给同目录的 64 位 CADViewXJLParser.exe 解析,再把经过边界检查的只读二维快照交给 OCX。只有在已验证的受控场景中显式设为 False,才先尝试 32 位进程内解析。OCX 与解析器协议不一致时,LastLoadError 会提示版本不一致;必须从同一个 ZIP 同时替换两者,不能只更新 OCX。

加载进度默认在任务持续 5 秒后显示。宿主可设置 ProgressDelaySeconds 为 0–3600;设为 0 会立即显示运行中进度,较大的值只改变提示出现时间,不改变加载本身。AlwaysUseParserProcess 与 ProgressDelaySeconds 都是控件实例属性,应在实际工作表、UserForm 或窗体中保存、关闭、重新打开后再核对持久化结果。

升级前必须先关闭 Excel、Word、PowerPoint、Access、Visio 和 VB6,再运行新目录中的注册脚本。脚本会检查这些宿主是否仍在占用控件,并只清理本控件位于 Excel、VBE 和 Microsoft Forms 目录中的旧 EXD 类型库缓存。若工作表已能看到新属性而 VBA UserForm 仍看不到,先关闭全部 Office/VB6,重新运行正确范围的注册脚本,再重新打开工作簿;不要手工删除无关控件的缓存,也不要关闭 Office 安全策略作为解决办法。

控件实现了 Office 持久化所需的安全初始化声明,为受支持的工作表与 UserForm 容器创建和还原控件提供兼容声明;是否允许加载仍受 Office 版本与企业安全策略控制。这个声明不是“允许任意脚本安全执行”的通行证,也不替代企业 Defender、ASR、AppLocker 或 WDAC 策略。最终仍应分别在目标电脑的 32 位 Excel 工作表和 VBA UserForm 中做一次可见验收:插入控件、保存、关闭、重开、加载一份脱敏图纸、退出;本机的类型库与自动化测试不能代替客户设备上的这一轮检查。

本轮目标为 Windows 10/11 x64,具体最低版本与实测范围见兼容性报告。不能从当前主机通过推断 Win7/8.1、所有 VB6 工程或所有打印机已兼容。

1.1 解压、版本与解析器的逐项核对

先把官网下载的 ZIP 保存到一个新的版本目录,核对文件名中的版本与当前下载页及同批校验回执一致;若交付页同时提供 SHA-256,应在完整下载后计算并比对。不要直接从压缩包预览或注册控件,也不要覆盖仍在使用的旧目录。完整解压后,先确认 CadViewX.ocx 与 CADViewXJLParser.exe 同时存在,再查看 README、注册脚本和第三方声明。Windows 若显示来自网络的安全提示,应由企业管理员按本单位策略处理,不能通过关闭 Defender、禁用宏保护或把整块磁盘加入排除项来省略检查。

把新旧两个版本分别放在明确命名的目录中,例如“已验证版”和“待验收版”。注册前记录当前 OCX 的绝对路径和文件版本;注册后再读取实际生效路径,避免脚本提示成功但宿主仍加载旧文件。若多个 Windows 账户共用电脑,当前用户注册和全机器注册应选定一种范围,并由管理员记录,不能在不知道原状态时交替运行两套脚本。回退时先关闭所有宿主,注销待验收版,再恢复原目录和原注册范围;不要只把新文件改成旧文件名。

加载图纸时,OCX 先建立一次请求,再由同目录解析器处理文件。AlwaysUseParserProcess=True 下,任务管理器中短暂出现解析器进程属于预期;加载完成或失败后,该次进程应退出。超过 ProgressDelaySeconds 才出现进度窗,不等于在此之前没有工作。若解析器被安全软件阻止、协议版本不一致、文件不存在或输出校验失败,应读取 LastLoadError,清空与本次结果不符的文件名和统计,再允许用户重新选择;不能继续展示上一张图并仅在状态栏写“失败”。

正式验收至少准备三类脱敏样本:一张小型 DXF 用于快速功能回归,一张包含中文、旋转文字、不同线型和多个图层的代表图,一张接近日常最大规模的大图用于独立解析和内存检查。每张图都记录打开时间、Active、FileName、文字或图层统计、全图结果以及关闭后的进程状态。大图只打开成功还不够,还要放大到局部查看细线和小字,再平移到其他区域确认画面能继续更新。

Office 需要拆成两条路线。工作表路线在 32 位 Excel 中插入控件,设置两个新属性,保存工作簿、退出 Excel、重新打开并加载脱敏图;UserForm 路线在 VBA 设计器中放置控件,核对属性窗格和事件列表,保存、退出、重开后再运行窗体。两条路线均应使用默认安全设置,不通过“信任对 VBA 工程对象模型的访问”或关闭受保护视图来绕过问题。若只有一条路线成功,应按失败路线记录,不可概括为“Excel 已兼容”。

2. 开发机注册与两种授权办理方式

使用公司局域网授权:先由企业管理员安装并激活服务端,再使用配套企业客户端连接管理员提供的内网 IP 和端口。员工无需逐台扫码购买。请按员工连接步骤操作;安装、席位、续费与升级见局域网授权服务端部署手册。下载入口在下载中心 · 局域网授权工具。

2.1 注册控件

1.将 ZIP 完整解压到长期使用的独立目录,关闭正在使用旧控件的宿主和设计器。

2.普通开发机优先双击 register-user.cmd,注册到当前用户范围。

3.确实需要所有用户使用时,以管理员身份运行 register-machine-admin.cmd。不要两个范围反复交叉注册来尝试“修好”错误。

4.脚本调用 Windows 的 32 位注册程序 %SystemRoot%\SysWOW64\regsvr32.exe;应使用包内脚本,而不是误用 64 位注册程序。

5.在 VB6 的“部件”中选择 CADViewXJL Control,放置到窗体,检查尺寸和窗口能正常显示。

注册成功表示 COM 注册信息建立,不等于软件授权完成,也不等于已完成真实 VB6 集成验收。

2.2 联网电脑扫码办理开发授权

在设计器中插入控件后,未取得有效开发授权时会显示注册窗口。先确认窗口中的产品为 CadViewX,并核对机器信息属于当前开发机。下面的流程用于电脑本身可以联网的情况。

授权方式局部图取自真实组件的隔离演示窗口,不提供可扫码二维码。请在自己的开发机使用当前注册窗口核对产品与设备信息,再办理联网或离线开发授权。

两种授权方式均取自真实组件的隔离演示窗口,未执行激活。请扫描自己开发机软件窗口中的当前二维码;手册图用于了解相应办理方式。

1.保持开发机的注册窗口打开,用手机微信扫描窗口中的二维码。不要扫描手册截图中的演示二维码。

2.在手机页面核对产品和机器信息,再按页面完成相应的授权申请。授权期限与费用以办理页面显示的实际内容为准。

3.办理完成后回到电脑,等待注册窗口重新检查状态。只有电脑显示授权已生效,才继续在设计器中使用控件。

4.如果手机页面已完成而电脑仍未变化,先检查开发机是否可以访问授权服务,再查看产品是否选对。不要反复购买同一份授权来尝试刷新。

5.关闭注册窗口后,重新查看控件是否正常显示。保存自己的工程,再关闭并重新打开设计器,确认状态可以延续。

手机扫码成功与开发机取得有效配置是两个检查点。仅看到手机页面完成,不应替代电脑端的生效检查。电脑无法联网时,改按下一节办理和复制离线配置。

隔离授权演示 电脑联网授权提示(不联网)
隔离授权演示 电脑联网授权提示(不联网)2026.09.11.114833 隔离授权演示,不联网;用于说明控件及操作顺序,不代表真实服务器或授权结果。
  1. 确认本机采用“电脑联网授权”方式,按本章扫码流程完成对应设备的申请。
  2. 授权后等待软件自动激活,重新打开或刷新控件检查实际状态。

结果核对:图示展示“软件自动激活”的说明位置;是否已激活以实际授权状态为准。

2.3 离线开发机使用配置文件

两幅授权局部图取自同一真实组件的隔离演示窗口,联网与离线方式在该窗口办理。

正文分别说明扫码和离线配置流程。请在自己的开发机上保留完整注册窗口,并核对实际产品和设备信息。

1.在离线开发机上打开注册窗口,保留当前产品和机器信息。使用手机或另一台联网电脑办理这台开发机的授权,不要误办成联网电脑自己的机器。

2.完成办理后下载对应的签名配置文件 config.ini。确认产品是 CadViewX,并确认该文件针对需要使用控件的开发机。

3.将文件复制到实际加载的 CadViewX.ocx 同一目录。如果电脑上有多个旧控件目录,应先确认设计器当前注册和加载的是哪一份。

4.让注册窗口重新检查配置;必要时关闭正在使用控件的设计器,再重新打开工程。不要在仍占用旧控件的进程里反复替换不同文件。

5.核对授权状态和有效期,再做一次插入控件、打开练习图纸和退出设计器的检查。文件已经复制但没有生效时,优先检查目录、产品、机器和期限。

保留办理得到的原文件,不手工修改其中的有效期或签名字段。另一台机器、OCR 或 DGS 的配置不能直接用于本控件。离线续期时应替换为针对同一开发机重新签发的有效文件;配置有误或已过期时,联系管理员核对授权记录。

隔离授权演示 离线配置文件入口(不联网)
隔离授权演示 离线配置文件入口(不联网)2026.09.11.114833 隔离授权演示,不联网;用于说明控件及操作顺序,不代表真实服务器或授权结果。
  1. 按离线说明手动下载本设备的配置文件,复制到实际使用的控件同目录。
  2. 需要申请时点击“复制机器码”,交由授权方办理;不要将其他设备的文件用于本机。

结果核对:配置文件就位后重新检查控件授权状态;本图仅说明操作入口。

2.4 开发授权与终端运行的区别

这是设计时开发授权。编译后宿主通过标准 UserMode=True 表明运行态时,不要求每位终端用户再次购买开发授权;不要将开发机授权 INI 随客户程序分发。

它没有自动实现按终端机器销售的商业流程。需要按终端计费、按项目计费或增加宿主账户权限时,应在宿主产品中单独实现。不能把开发授权解释为每个最终用户都要重新扫码,也不能把它当成独立终端授权防绕过系统。

3. 在宿主中打开第一张图纸

2300 × 1050 原始像素裁切。画面由真实 `工程new.exe` 加载用户指定 `案例/CADViewX/测试用例.dwg` 后截取;19.463 秒只是本机这一次显示值,不作为通用性能承诺。

本版图中不是合成界面,也不是旧版三联拼图:实际启动用户指定的 案例\CADViewX\VB6案例\工程new.exe,点击“打开文件”,选择 案例\CADViewX\测试用例.dwg,等待窗口显示 用时:19.463s 后再截取无压缩 PNG。该 DWG 为 33,024,134 字节;图中用时只记录本机这一次打开结果,不承诺其他电脑或其他图纸具有同样速度。公开网页只发布截图,不上传指定 DWG、VB6 工程或可执行文件。

读者自行练习时仍可使用本书配套的“演示线束工位.dxf”,不要将它与上述截图取证用 DWG 混为同一文件。如果你是开发者,先按前两章完成环境准备与开发授权;如果你在使用已集成的正式宿主,请使用该宿主实际提供的打开和查看按钮。

真实 VB6 宿主 图纸加载结果
真实 VB6 宿主 图纸加载结果历史真实界面截图 · 2026.09.11.114833 历史真实示例宿主;与当前正式版不同之处以正文说明为准。
  1. 在自己的 VB6 宿主中点击“打开文件”,选择图纸并等待加载。
  2. 查看控件区域的图形和文字,结合 Active 与加载错误信息判断是否成功。

结果核对:图纸占据控件客户区;宿主负责文件选择和等待提示。

真实 VB6 宿主 打开入口与加载提示
真实 VB6 宿主 打开入口与加载提示历史真实界面截图 · 2026.09.11.114833 历史真实 VB6 / OFFICE 素材;与当前正式版不同之处以正文说明为准。
  1. 点击宿主“打开文件”,在实际文件选择框中选工作副本。
  2. 加载结束后查看本次“用时”提示,再检查控件画面;图示耗时仅对应该次观察。

结果核对:入口由实际宿主提供;开发者在自己的宿主中使用相应按钮与接口。

3.1 先明确这个窗口由谁提供

图中的“打开文件”和“用时”由这个真实 VB6 示例宿主提供;两条图纸显示区域属于嵌入控件。宿主按钮在被点击时调用控件接口,把加载过程和结果变成看得见的操作。将控件放到自己的窗体后,开发者仍需自己安排按钮、状态栏、文件对话框和异常提示;控件不会自动替宿主生成这些界面。

第一次接入可以只做三个按钮:打开、全图、关闭。不要同时加入账户、数据库和批量导出,以免失败时不知道是哪一部分出错。这个最小查看器通过后,再加入图层、坐标和位图功能。

3.2 在设计器中安排空间

窗体上方留一行命令区,中间让控件占据主要空间,下方留状态提示。控件宽高不能为零,否则即使加载成功也没有可检查的画面。窗口改变尺寸后,宿主应将控件调整到剩余客户区,避免右侧或底部被覆盖。刚完成布局时,先拉大、缩小宿主,检查图纸区域与按钮是否始终分开。

如果使用 VB6,窗体和控件的位置尺寸可能采用 Twips,鼠标换算接口使用像素。不要为了得到屏幕位置,把控件的 Left、Top 直接加到鼠标事件 X、Y 上。先确认各变量所属坐标系,只有需要转换为桌面位置的宿主弹窗才再增加父窗口偏移。

2560 × 1526 完整窗口,来自用户指定 `Excel控件.xlsm` 的实际运行画面。

上图是指定 Excel控件.xlsm 中“直接嵌入”运行后的真实工作表,不再把工作表、UserForm 和代码编辑器压缩到一张拼图里。“直接嵌入”是宿主按钮;白色图纸区域和彩色线束区域是控件中实际显示的内容。

2560 × 1526 完整窗口,来自同一 `Excel控件.xlsm` 的实际 UserForm 画面。工作表嵌入和 UserForm 是两个宿主场景,必须分别保存、关闭并重新打开验证。

这张图单独保留同一工作簿的 UserForm 运行画面。工作表控件和 UserForm 控件的创建、保存与重新加载路径不同,因此必须分开验收,不能用其中一张成功截图代替另一种宿主场景。

Excel工作表直接嵌入控件:完整窗口
真实 Excel 工作表 直接嵌入控件
  1. 可点击“打开VBA窗体”使用独立窗体;“直接嵌入”用于工作表内展示。
  2. 在工作表内查看控件区域,按宿主代码加载并核对同一图纸。

结果核对:CAD 图纸直接显示在 Excel 工作表内;文件加载由宿主代码完成。

Excel UserForm打开图纸:完整宿主窗口
真实 Excel UserForm 打开图纸
  1. 在 UserForm 中点击“打开图纸”,选择工作副本。
  2. 检查窗体内控件的图形和文字,结合 Active、错误信息及宿主事件判定加载结果。

结果核对:图纸显示在 UserForm 的 CAD 控件中;此处用时仅为录屏当次观察。

Excel工作表的两种控件入口
真实 Excel 工作表 两种宿主入口
  1. 点击“打开VBA窗体”进入 UserForm 场景。
  2. 点击“直接嵌入”在工作表内创建和显示控件。

结果核对:入口由实际宿主提供;开发者在自己的宿主中使用相应按钮与接口。

UserForm打开入口与控件:完整宿主窗口
真实 Excel UserForm 打开入口
  1. 在窗体中点击“打开图纸”,选定工作副本后核对控件画面。

结果核对:入口由实际宿主提供;开发者在自己的宿主中使用相应按钮与接口。

3.3 第一次成功的判断顺序

第一次接入可先用说明书演示 DXF 走通流程,再用项目实际需要的代表性 DWG 回归。点击打开、等待函数返回,然后依次检查 Active、FileName、TextCount 和画面。Active 是判断当前是否存在已加载文档的重要依据;FileName 用于确认本次文件;文字数量用于辅助排查,不是完整性的唯一证明。对于本版指定测试 DWG,还要像真实 VB6 和 Excel 截图那样分别核对上方白色对象、下方彩色线束以及大范围表格/连接关系是否可见。

一个实际可用的宿主应让用户看见这四种状态:尚未打开、正在加载、加载成功、加载失败。不要把无异常统一写成“成功”,也不要加载失败后继续显示上一个文件的名称和统计。成功提示应在取得当前结果后更新,错误状态则清空与本次不符的业务信息。

在完整宿主中选择DWG工作副本
随附示例宿主 选择并打开图纸
  1. 在文件对话框中选择“演示线束工位.dxf”或自己的工作副本。
  2. 点击“打开”,等待宿主调用 LoadFile 并处理返回结果。

结果核对:文件选择完成后返回宿主,接着检查加载状态和画面。

随附示例宿主 加载后核对画面和状态
随附示例宿主 加载后核对画面和状态历史真实界面截图 · 2026.09.11.114833 历史真实示例宿主;与当前正式版不同之处以正文说明为准。
  1. 查看客户区的外框、文字、护套与路径,确认图纸已显示。
  2. 对照底部 Active=True 与实际统计,再执行全图或局部操作。

结果核对:示例显示 Active=True,图形和统计同时存在;这些数量只对应当前示例。

3.4 给用户可执行的失败动作

图纸不存在或损坏后,用户可再次点“打开”选有效文件。示例“不存在文件”按钮使用虚构路径,保留原图;核对控件错误提示和 Active=False。

需要恢复上一图时,宿主保留上一次成功路径,并提供重开入口。旧文档可能已清理,重开必须重新检查成功/失败,不能仅恢复状态栏文件名。

随附示例宿主 不存在文件的失败结果
随附示例宿主 不存在文件的失败结果历史真实界面截图 · 2026.09.11.114833 历史真实示例宿主;与当前正式版不同之处以正文说明为准。
  1. 在宿主中测试不存在的文件,读取“无法打开图纸”和 File not found 错误。

结果核对:客户区显示找不到文件提示。先检查路径和文件,再选择有效图纸重新打开;失败状态检查见第 11.2 节。

3.5 VB6 打开按钮的完整示例

先在窗体放置名为 CADViewXJL1 的控件,使用已存在的小型 DXF:

Private Sub cmdOpen_Click()
    On Error GoTo ComError
    CADViewXJL1.LoadFile "D:\Drawing\sample.dxf"
    If Not CADViewXJL1.Active Then
        MsgBox "图纸没有加载成功,请检查控件错误画面和文件。"
        Exit Sub
    End If
    CADViewXJL1.ZoomExtents
    Debug.Print CADViewXJL1.FileName
    Debug.Print CADViewXJL1.EntityCount
    Debug.Print CADViewXJL1.TextCount
    Exit Sub
ComError:
    MsgBox "控件调用失败:" & Err.Description
End Sub

LoadFile 是无返回值方法。找不到文件或解析失败时,当前实现可能返回正常 COM 状态并在控件内显示错误,而不抛异常;因此 On Error 不能代替 Active 检查。当前加载会先清理旧图,失败后不保证原图仍保留。宿主若需要“打开失败恢复上一图”,应自行保留上一个路径并提供明确恢复动作。

成功时会发出 OnAfterLoad。需要显示属性或建立自己的列表,可在该事件或成功检查后读取。EntityCount 是当前渲染表示的线段、文字和填充数量之和,不保证等于源 CAD 数据库的顶层实体数量;用它评估解析规模时应避免把曲线离散后的段数当成原始对象数。

3.6 大图处理与关闭图纸

默认独立解析策略见 1.1;不要按文件大小推断直接解析。进度按 ProgressDelaySeconds 延后显示(默认 5 秒),不表示剩余时间。首次集成测试小 DXF、代表性 DWG、中文路径、大图及损坏文件;错误时记录大小、路径和完整错误,避免重入。CloseFile 关闭后检查 Active=False。

4. 鼠标操作与视图调整

4.1 从全图到局部检查

先执行全图显示,观察外框与主体是否完整;把鼠标移到需要检查的文字附近,滚轮逐级放大,再按住中键或左键小幅平移。检查完一处后回到全图,再寻找另一处。这样能把“对象不存在”和“对象在当前视野外”区分开。

局部放大时,线条更粗、文字出现或消失可能与绘制尺度相关。应以同一对象在多个倍率下的连续表现判断,不要仅截一张极小概览就断言文字丢失。较细的原图线在屏幕上仍受像素分辨率限制;当需要比较细节时,让控件窗口足够大。

随附示例宿主 全图 放大与重置按钮
随附示例宿主 全图 放大与重置按钮历史真实界面截图 · 2026.09.11.114833 历史真实示例宿主;与当前正式版不同之处以正文说明为准。
  1. 点击“全图显示”适合窗口;点击“放大1.5倍”检查局部。
  2. 用“重置视图”恢复初始视角,再核对目标区域。

结果核对:这三个按钮由示例宿主调用控件 API;其他宿主可使用自己的按钮。

4.2 旋转、适应窗口与重置

相对旋转保持当前缩放状态,长方形图纸转成竖向后可能暂时超出窗口。这时再执行全图,就会得到完整的竖向构图。完成方向检查后使用 ResetView 回到零度并适应全图,而不是继续重复点击旋转直到“看起来差不多”。

宿主中最好将“向左旋转”“向右旋转”和“恢复默认方向”分成清楚的动作。保存自己的视图状态时记录中心、比例和角度,而不是只记一个缩放数值。切换到另一张图后不要无条件套用旧中心,否则新图可能完全落在可视区域外。

随附示例宿主 执行一次旋转
随附示例宿主 执行一次旋转历史真实界面截图 · 2026.09.11.114833 历史真实示例宿主;与当前正式版不同之处以正文说明为准。
  1. 点击“旋转90°”,由宿主调用 RotateView 增量旋转。

结果核对:执行后观察下一幅图的方向及 ViewRotation。

随附示例宿主 旋转后的显示结果
随附示例宿主 旋转后的显示结果历史真实界面截图 · 2026.09.11.114833 历史真实示例宿主;与当前正式版不同之处以正文说明为准。
  1. 对照图纸方向,确认目标区域仍可辨认。
  2. 核对底部 ViewRotation=90°;需要复位时调用 ResetView,再重新适合窗口。

结果核对:图形方向和状态栏的 90° 一致;顺序旋转应使用增量角度。

4.3 平移参数的实际例子

调用 PanView 50, 0 表示向控件客户区右侧平移五十个像素;调用 PanView 0, -30 表示向上平移三十个像素。它不把图中某个连接器移动五十毫米。调用前后可以用一条固定基准线观察它相对窗口的位置,再用 CAD 坐标转换检查几何坐标未被编辑。

若宿主希望“以图纸单位移动视野”,应先根据当前比例和旋转把位移换成正确的显示偏移,或采用 SetView 设定目标中心。对于旋转视图,不能简单把一个毫米数字直接传给 PanView。将这两类操作在按钮名称上分清,用户就不容易误解为图元编辑。

4.4 鼠标操作速查

操作结果
左键或中键按住拖动平移视图
鼠标滚轮在启用 MouseWheelZoom 时定点缩放
左键或中键双击适应全图
右键在 SelfPopupMenu=True 时打开内置预览菜单

这是预览控件,不提供与 DGS 相同的对象选择、夹点编辑或路径绘制。若宿主拦截鼠标事件、修改属性或自行显示菜单,实际体验也会受宿主控制。

4.5 控件内置右键菜单

本轮右键菜单使用下列英文名称,可按表理解;这些不是假设存在的顶部工具条按钮:

实际菜单名称功能
Zoom Extents适应全图
Zoom In / Zoom Out放大 / 缩小
Rotate Clockwise / Rotate Counterclockwise按当前菜单实现进行 90 度方向旋转
Layers...打开带勾选状态的图层列表
Copy Current View复制当前视图位图到剪贴板

Popup X, Y 可由宿主在指定控件客户区坐标显示该菜单。ShowLayersDialog 当前显示的是图层弹出列表,并非完整的 CAD 图层属性编辑对话框。图层列表最多呈现前 1000 项;更大列表可由宿主通过图层 API 自行建立界面。

ToolBarVisible、LayoutsBarVisible 等兼容属性存在,不代表当前实现已经绘制一套完整工具条、布局管理器或 3D 功能。DoToolButtonClick 的枚举包含历史名称,只有实际处理的动作才有功能;不能因看到 tbSave、tbOpen 或 tbOrbit3D 就向用户承诺对应按钮可用。

控件原生英文右键菜单:完整窗口
控件原生右键菜单 英文界面示例
  1. 在控件区域右键,按实际菜单选择“Zoom Extents”“Zoom In”“Rotate Clockwise”“Layers...”或“Copy Current View”等操作。

结果核对:菜单来自控件本身;图示为英文界面,中文显示名称见本节速查。

4.6 视图与显示接口速查

接口/属性参数和当前语义
ZoomExtents按当前图纸范围适应窗口
PanView DeltaX, DeltaY控件客户区像素偏移,X 正值向右、Y 正值向下,不是 CAD 图纸单位
RotateView Degrees相对当前角度旋转,单位度
ViewRotation设置绝对旋转角度,单位度
SetView CenterX, CenterY, Scale, Rotation中心使用 CAD 坐标;Scale 为相对于适应窗口比例的倍数;Rotation 为绝对角度
ZoomWindow Left, Top, Right, Bottom用 CAD 坐标范围框选放大,返回 Boolean;零宽/高范围会失败
HasPrevScale / PrevScale查询能否回到上一视图,再恢复;当前最多保留 32 份视图历史
ResetView将旋转重置为零并适应全图
ScaleFactor相对于适应窗口比例的缩放倍数,不是固定毫米比例
ViewCenterX / ViewCenterY当前视图中心的 CAD 坐标
Colored / DrawMode / ShowLineWeights彩色、绘制模式及线宽显示
BackGroundColor / ForeColor背景与前景颜色
ShowCrosshair / MouseWheelZoom十字光标与滚轮缩放开关
PictureRepaint请求重绘

所有数值由宿主校验为有限值,比例用有效正数。不要将 mmWidth、mmHeight 的名义屏幕换算作为实体 1:1 工位校准依据;本控件没有 DGS 那套屏幕物理标定流程。

5. 按图层显示需要的内容

5.1 查找并隐藏一类辅助内容

示例图把外框、路径、文字、零件和尺寸放在不同图层。打开图层列表,先记住原来哪些项有勾选,再取消 PATH 的勾选。画面中的绿色路径消失,但连接器外框、线号和尺寸仍在;这说明正在调整图层显示,而不是把整个图纸关闭了。

完成检查后用 ShowAllLayers True 恢复。如果宿主需要保留原来就隐藏的图层,不应一律“全部显示”,而应在修改前记录每个图层的可见性,再逐项恢复。记录以当前文件为范围,加载新图后重新建立,不把旧图层索引当成通用编号。

随附示例宿主 在图层菜单中选择 PATH
随附示例宿主 在图层菜单中选择 PATH历史真实界面截图 · 2026.09.11.114833 历史真实示例宿主;与当前正式版不同之处以正文说明为准。
  1. 点击“图层列表”查看真实图层名称。
  2. 取消 PATH 的勾选后关闭菜单,回到画面比较。

结果核对:图中 PATH 仍勾选;按步骤取消后,下一幅图展示隐藏后的结果。

5.2 大量图层时自建列表

对于层数很多的工程图,弹出菜单不便搜索。宿主可以遍历 LayerCount,读取每一项 LayerName、LayerColor 和 LayerVisible,组成自己的列表,增加名称搜索与勾选框。勾选变化调用 SetLayerVisible,再请求重绘。列表中应区分“按名称查找”和“索引编号”,因为不同图纸同名图层的索引也可能不同。

控件内图层状态主要用于当前显示。若用户要求把这些显隐规则保存到源 DWG 或 DXF,本控件当前没有相应保存能力;宿主可另存自己的显示偏好文件,但必须注明那是宿主配置,不是 CAD 图纸编辑结果。

随附示例宿主 隐藏 PATH 后对比图形
随附示例宿主 隐藏 PATH 后对比图形历史真实界面截图 · 2026.09.11.114833 历史真实示例宿主;与当前正式版不同之处以正文说明为准。
  1. 比较绿色路径是否消失,并确认护套和文字仍在。
  2. 核对仍显示的 001 标签;完成后重新勾选 PATH 或使用全部显示恢复。

结果核对:路径隐藏而标签仍保留,便于区分图层可见性与文件内容。

5.3 颜色和线宽的结果判断

切换黑白显示前先观察一条路径和一个尺寸对象,切换后它们的颜色应按当前绘制模式变化。背景很亮而线色也很亮时,显示中可能进行可读性处理,不能把屏幕取色直接当成源图颜色数据库。需要源颜色业务处理时读取图层信息,并为特殊继承规则保留检查空间。

线宽显示用于更接近图纸视觉效果,但在很小的窗口里粗线可能遮挡细节。可以放大同一局部比较开启与关闭线宽的效果;不应为了让一张缩略图更清楚而把用户原图线宽永久改小。

5.4 开发者遍历图层的示例

图层索引从 0 开始,有效范围为 0 到 LayerCount-1。图层可见性是当前控件中的显示状态,不是将源文件中的图层重新保存。

Dim i As Long
For i = 0 To CADViewXJL1.LayerCount - 1
    Debug.Print CADViewXJL1.LayerName(i), _
                CADViewXJL1.LayerVisible(i), _
                CADViewXJL1.LayerColor(i)
Next
If CADViewXJL1.LayerCount > 0 Then
    CADViewXJL1.SetLayerVisible 0, False
End If
CADViewXJL1.ShowAllLayers True

LayerName(Index) 是带索引属性,LayerVisible(Index)、LayerColor(Index) 是方法。索引错误会返回 COM 错误,宿主应使用当前图纸重新获取数量,不沿用上一个文件的索引。

6. 坐标拾取与业务叠加

6.1 先做一个点的往返验证

选择控件客户区中央一个像素点,分别调用 ScreenToCADX 和 ScreenToCADY,得到对应 CAD 坐标,再把该坐标同时传给 CADToScreenX 和 CADToScreenY。返回像素应该回到同一个位置或仅有整数取整误差。若相差一个控件左上角偏移,通常是客户区和父窗口坐标混用了。

重复这个检查时,应选左上、中心、右下三个不同位置,并分别在零度和九十度视图中进行。只测中心点可能掩盖比例或旋转错误;只测零度又可能掩盖轴方向错误。把测试点画到宿主自己的临时层时,还要确认宿主覆盖物不会拦截控件本来的鼠标输入。

随附示例宿主 调用坐标换算示例
随附示例宿主 调用坐标换算示例历史真实界面截图 · 2026.09.11.114833 历史真实示例宿主;与当前正式版不同之处以正文说明为准。
  1. 点击示例宿主的“坐标换算示例”按钮(截图中末字略有截断),由宿主调用真实坐标 API。

结果核对:底部出现像素与 CAD 坐标及反算结果,按下一图核对。

随附示例宿主 核对坐标往返结果
随附示例宿主 核对坐标往返结果历史真实界面截图 · 2026.09.11.114833 历史真实示例宿主;与当前正式版不同之处以正文说明为准。
  1. 对照底部像素 (937,430)、CAD 坐标及反算像素;缩放、平移或旋转后重新测试当前变换。

结果核对:本次反算回到像素 (937,430);坐标单位和容差按业务需要确定。

6.2 高 DPI 工位的检查表

将窗口放到实际使用的显示器,在当前系统缩放下测试点选和坐标。若运行环境使用多个不同缩放的显示器,移动窗体后重新做一次,不沿用启动时假定的像素比例。开发者应检查宿主的 DPI 声明、控件客户区尺寸以及输入事件的单位,而不是让最终用户靠鼠标偏移补偿。

一次完整检查包括:鼠标位置、事件返回值、转换后的 CAD 坐标、转换回来的像素、临时提示显示位置。只有这几项对齐,才能把该坐标用于后续业务查询。控件提供坐标换算不等于已经提供对象拾取、实体修改或数据库级对象标识。

6.3 如何写清业务坐标

建议宿主状态栏同时注明单位和坐标系,例如“图纸坐标 X=250.000,Y=150.000,单位 mm”,不要只显示两个没有单位的数字。毫米应来自对图纸单位的理解,不是因为某个显示属性中出现了 mm 字样。屏幕缩放倍数与图纸实际长度是不同信息,分别展示更容易排查问题。

6.4 换算接口与输入单位

CAD 坐标与屏幕坐标转换接口为:

ScreenToCADX(X, Y)    ScreenToCADY(X, Y)
CADToScreenX(X, Y)    CADToScreenY(X, Y)

屏幕参数是控件客户区坐标,勿直接传桌面坐标或 VB6 窗体 Twips。宿主使用 Twips 时,应先转换成对应像素。读取鼠标事件和转换结果后,在 100%/125%/150% 缩放及旋转视图下验证同一个已知点的正反转换。

7. 保存和复制当前画面

7.1 先确定要保存的视图

输出当前视图前先选择方向,调整到合适缩放,并决定是否显示某些辅助图层。需要整张图时执行全图;需要局部时放大并平移到目标。确认没有弹出菜单遮住控件,窗口也没有最小化,再执行导出。

保存对话框由示例宿主提供。文件名示例为“当前视图.bmp”,格式为 BMP;选择可写目录并点击保存。正式宿主可以使用同样的接口,把最终路径交给 ExportViewToBMP,但应在覆盖已有文件前让用户看清目标。

7.2 保存后做一次独立检查

检查函数返回 True,再检查目标文件存在且大小合理,最后用图像查看程序打开。观察旋转方向、文字、边缘和当前图层是否与控件一致。只有返回值而没有文件检查,不足以证明业务交付完成;反过来,有文件但内容是空白也不能算成功。

位图记录的是当前窗口像素,不具备矢量图纸任意放大的精度。打印到大幅面时容易看到像素边缘,这是位图流程的天然限制,不应向用户承诺它与原生 CAD 矢量打印相同。若用户需要可编辑图纸或精确工程打印,应采用有相应功能的 CAD 产品。

随附示例宿主 导出当前视图 BMP
随附示例宿主 导出当前视图 BMP历史真实界面截图 · 2026.09.11.114833 历史真实示例宿主;与当前正式版不同之处以正文说明为准。
  1. 先调整当前视图,再点击“导出BMP”。

结果核对:系统显示位图保存对话框,继续选择文件名和保存位置。

保存位图 设置文件名并保存
保存位图 设置文件名并保存历史真实界面截图 · 2026.09.11.114833 历史真实示例宿主;与当前正式版不同之处以正文说明为准。
  1. 输入“当前视图.bmp”或自己的文件名,核对 BMP 类型。
  2. 点击“保存”,等待 ExportViewToBMP 返回结果。

结果核对:保存位置与文件名确定后回到宿主,检查实际输出。

随附示例宿主 核对 BMP 导出结果
随附示例宿主 核对 BMP 导出结果历史真实界面截图 · 2026.09.11.114833 历史真实示例宿主;与当前正式版不同之处以正文说明为准。
  1. 查看 ExportViewToBMP=True 和输出位置,再用图片程序打开实际 BMP 检查。

结果核对:输出是当前客户区位图;需要 CAD 文件另用具备该能力的工具。

7.3 剪贴板复制的用途

“复制位图”适合将当前画面粘贴到报告、邮件草稿或宿主自己的图像控件。复制后在目标图像区域实际粘贴,检查没有把上一次的剪贴板内容误当成本次输出。宿主若要自动读取,应确认格式与复制结果,并避免在失败时继续使用旧位图。

这一步只产生图像;不会自动发送邮件、上传图纸或共享文档。对包含客户图纸的正式业务,应由宿主和用户决定允许的接收范围。手册演示图是专门制作的练习数据,可以用于学习这些操作。

随附示例宿主 复制位图并核对返回
随附示例宿主 复制位图并核对返回历史真实界面截图 · 2026.09.11.114833 历史真实示例宿主;与当前正式版不同之处以正文说明为准。
  1. 点击“复制位图”,调用 CopyToRaster。
  2. 检查 CopyToRaster=True,再到支持位图的程序中粘贴核对。

结果核对:当前视图已复制到剪贴板,粘贴后的显示需在目标程序中检查。

7.4 开发者导出位图的示例

If Not CADViewXJL1.ExportViewToBMP("D:\Drawing\current-view.bmp") Then
    MsgBox "位图输出失败,请检查控件窗口和目标目录。"
End If

ExportViewToBMP 输出当前控件客户区的 BMP,分辨率与当前窗口大小有关;它不是矢量 DWG/DXF 输出。导出前让控件正常显示、设置所需视图并重绘,目标目录应已存在且可写;同名目标可能被覆盖。不要在控件被最小化或不可见时假定获得了可用高分辨率图。CopyToRaster 或右键“Copy Current View”用于复制位图到系统剪贴板。核查返回值并在图像程序中实际粘贴检查,内容应与当前视图一致。

8. 打印与 CAD 保存的实际能力

8.1 不要让“调用成功”变成“打印成功”

当前 PrintImage 调用后可能正常返回,但它只进入位图复制流程。示例宿主将这件事直接写在结果区,并显示 PrintersCount 的当前结果。这里没有打印机选择窗口,也不会凭这一步产生纸张输出。

自己的产品若确实需要一个“打印”按钮,应将位图取得、打印机选择、纸张设定、页边距和最终提交连接起来。用户取消打印对话框时,应显示已取消,不能显示完成;打印机离线、缺纸等后续状态也应由宿主的打印方案处理。没有实际打印机测试时,手册应把它列为待验收集成功能。

随附示例宿主 查看打印接口返回说明
随附示例宿主 查看打印接口返回说明历史真实界面截图 · 2026.09.11.114833 历史真实示例宿主;与当前正式版不同之处以正文说明为准。
  1. 调用打印接口后阅读底部说明;本版 PrintImage 复制位图到剪贴板,实际打印由宿主另行实现。

结果核对:图示说明未向打印机发送任务;将位图交给宿主后再验证实际打印。

8.2 保存 CAD 文件的拒绝结果

示例宿主保留“保存接口边界”按钮,供开发者看见 SaveToFile 的真实未实现错误。这个按钮不是给普通用户使用的正式保存入口。当前控件不提供把图纸另存为 DWG/DXF 的能力,也不会因为参数扩展名换成 .dxf 就支持转换。

正式宿主应隐藏或禁用这些不支持的产品动作,或者明确跳转到另一个经过验收的转换功能。不要吞掉 E_NOTIMPL 后显示“已保存”,不要仅创建一个空的同名文件以满足存在性检查,也不要把 BMP 改扩展名冒充 CAD 输出。

随附示例宿主 识别 CAD 保存接口拒绝
随附示例宿主 识别 CAD 保存接口拒绝历史真实界面截图 · 2026.09.11.114833 历史真实示例宿主;与当前正式版不同之处以正文说明为准。
  1. 调用保存接口后读取 HRESULT 和错误文字,向用户保留原文件及明确结果。

结果核对:示例返回 E_NOTIMPL,应用应保留工作副本并使用支持 CAD 保存的方案。

8.3 打印和保存接口的对照

当前 Print 和 PrintImage 只调用位图复制流程,不弹打印机对话框,也不直接将任务提交给打印机。 PrintersCount 当前返回 0;不要把这些兼容接口描述成已完成打印功能。

需要打印时由宿主提供打印流程,例如先 CopyToRaster,确认剪贴板得到位图,再由 VB6 的 Printer.PaintPicture 等宿主能力放到目标纸张。纸张、方向、缩放和打印机异常处理由宿主负责;实际打印机必须另行验收。

当前 SaveToFile、SaveToFileEx、SaveCopyToFile 返回 E_NOTIMPL,不保存 DWG 或 DXF。GetSaveDialogFilter 虽包含历史格式名称,也不证明保存实现存在。ConvertCADToJPEG 当前返回 False;本轮明确可用的文件型画面导出是 ExportViewToBMP。

块、文字、曲线及填充按受支持路径进行 2D 预览。POINT 构造点不作为可见十字显示;特殊填充、隐藏属性、弧线和旋转文字仍需用代表性图纸核对。兼容接口名称不表示完整复制其他厂商功能。

9. 处理事件与关闭宿主

当前类型库提供 ICADViewXJLEvents。集成时由 VB6 事件下拉框或类型库生成准确签名,不用其他控件的事件名代替。

事件宿主建议用途
OnBeforeLoad / OnAfterLoad清理自己的旧列表、在成功加载后读取新状态
OnProgress显示阶段和提示;失败也可能发出结束阶段,不能仅凭阶段判断成功
OnMouseDown / OnMouseUp / OnMouseMove获取客户区输入并转成 CAD 坐标
OnMouseWheelUp / OnMouseWheelDown需要时接管滚轮;Handled 为可回写参数
OnKeyDown / OnKeyPress按事件真实类型处理键盘输入
OnScaling更新宿主显示的比例/视图信息
OnToolButtonClick观察被调用的工具动作;事件触发不保证每个历史枚举都有实现

避免在 OnBeforeLoad、OnAfterLoad 或绘制回调中再次同步加载同一文件造成递归。也不要从任意后台线程直接操纵同一个 Apartment COM 控件;将 UI 调用安排回宿主所属线程。

窗体关闭时释放控件和相关事件引用。不要保留已关闭图纸的索引或旧状态。企业授权适用时,正常卸载会停止心跳;强制终止后的席位由服务器租约期限回收。

10. 分发更新与网页版区别

10.1 免注册 COM

设计器一般仍需注册;终端宿主可按包内 VB6App.exe.manifest.template 验证 Registration-Free COM:

1.将终端 EXE、同版 OCX 与解析器放在预定分发目录。

2.复制清单模板,按照宿主的实际 EXE 文件名配置清单,例如 MyApp.exe.manifest;模板中的应用身份按宿主调整。

3.保留 x86 体系、OCX 文件名及下面的 CLSID/类型库标识,不把它们改成其他预设的 GUID。

4.如果 EXE 已有嵌入清单,应按宿主构建方法合并,不能假定外部清单一定覆盖已有清单。

5.在未注册控件的隔离终端验证创建、加载和退出,再决定正式分发。实际宿主验证尚未完成时,不能仅以模板存在声称部署通过。

10.2 准确的控件身份

标识本轮值
ProgIDCADViewXJLLib.CADViewXJL
CLSID{7A72E99F-F320-48ED-BC67-A8A6F1128F87}
类型库 LIBID{7B72CE74-D9F0-497D-8EE7-9BADBC738C0D}
库 / 类CADViewXJLLib / CADViewXJL
默认接口 / 事件接口ICADViewXJL / ICADViewXJLEvents

不要使用其他构建预设的 CADViewLib.CADViewX 作为本包 ProgID,也不要直接替换其他产品 OCX。

10.3 更新和卸载

关闭宿主后再更新,OCX 和解析器必须同版,不混入旧 DLL/OCX。测试新版本使用独立目录,保留上一已验证包;注册路径变化后应使用新目录脚本重新注册并验证。

注销范围与注册范围匹配:当前用户运行 unregister-user.cmd;全机器范围由管理员运行 unregister-machine-admin.cmd。先注销再移走文件,避免留下失效注册路径。免注册终端按自身安装器移除文件,不必额外创建全机器注册项。

10.4 与网页预览版本的区别

网页通过浏览器选择本地 DWG/DXF 并显示预览。按当次发布页面提供的缩放、图层和旋转入口操作;OCX 的注册、VB6 事件和本地输出路径不能套用于网页。

网页部署单独核对 WASM、脚本和字体资源。浏览器预览与桌面解析器分开记录验收,不能用其中一个的测试数量代表另一个。网页账户访问门禁也不代表浏览器可下载的代码无法被有技术能力的用户提取。

11. 故障检查与交付练习

“无法插入对象”先区分三类问题:宿主位数、控件注册、Office 安全策略。当前 OCX 需要 32 位 Windows 宿主;64 位 Windows 上也可以安装 32 位 Office,因此不能只看操作系统位数。

现象先做的检查下一步
VB6 能打开,Excel 不能插入确认 Excel 自身为 32 位,并核对工作簿来源和组织策略由 IT 按受信任文件和组织策略处理;不要全局关闭 ActiveX、宏或杀毒防护。
工作表可用,UserForm 不可用确认所有 Office / VB6 进程已退出后,再运行同包注册脚本重新打开工作簿,在工作表与 UserForm 分别执行插入、保存、关闭、重开、加载图纸。
更新后属性或行为仍旧核对实际加载的 OCX 路径,以及配套解析器是否来自同一完整包关闭占用进程后更新;保留 LastLoadError 错误原文。

微软说明 Microsoft 365 / Office 2024 默认禁用 ActiveX,Mac 与网页版本不支持该控件机制;32 位 ActiveX 控件不能直接加载到 64 位 Office。现场是否允许使用,应以目标设备的实际设置为准。

问题核查顺序
注册失败或找不到类脚本与注册范围、OCX实际路径、x86宿主及32位注册程序
64位程序无法加载当前OCX为x86,应使用匹配宿主或另行取得64位产品
开发授权未生效OCX同目录config.ini、产品CadViewX、当前机器、签名与期限
LoadFile没有报异常却空白检查Active、控件错误画面、文件是否存在及解析结果
大图失败配套解析器是否同版完整、文件完整性、内存及错误信息
文字很小看不到放大核对;概览可能跳过亚像素文字;检查字体和样图
坐标偏移客户区/桌面/Twips是否混用,系统缩放、视图旋转与父窗口布局
图层索引越界加载新图后重新读取LayerCount,不沿用旧索引
保存DWG/DXF失败本轮不实现CAD文件保存,使用源CAD或转换产品
Print调用后没打印当前只是复制位图,宿主需另写实际打印流程
位图空白/输出失败控件是否正常可见,已加载、已重绘,目标目录可写
更新后行为不一致检查实际注册路径、进程是否仍加载旧控件、OCX和解析器版本

11.1 开发机与终端分开验收

开发机主要验证设计器插入、控件属性、扫码或离线开发授权以及事件签名。终端主要验证位数、依赖、注册或免注册部署、业务打开与关闭、错误恢复和打印方案。两者授权契约不同,因此验收记录也分开写。

一个清楚的终端记录至少包含宿主版本、控件版本、解析器版本、Windows 版本、系统缩放、测试文件和结果。升级时对比上一份记录,尤其注意实际注册路径是否仍指向旧目录。仅替换文件名而没有重新检查路径,很容易造成“打包的是新控件,运行的是旧控件”。

11.2 一次可执行的回归路线

先打开小 DXF,确认 Active 与全图;旋转后适应窗口;切换一个图层再恢复;对三处像素做坐标往返;导出一张 BMP 并打开检查;复制一张位图;模拟不存在文件后再打开正常图;关闭图纸;最后退出宿主并重新启动。需要大图时,再单独增加独立解析的耗时和错误检查。

上述步骤应使用固定的演示文件,结果容易对比。真实客户图纸可以作为第二组兼容性样本,但不要把客户文件和个人授权配置放入公开说明书素材目录。问题复现材料可以先删除与问题无关的对象,再确认精简后的文件仍能复现。

随附示例宿主 核对失败后的状态
随附示例宿主 核对失败后的状态历史真实界面截图 · 2026.09.11.114833 历史真实示例宿主;与当前正式版不同之处以正文说明为准。
  1. 检查底部 Active=False 和实体、文字、图层统计清零,然后重新打开有效图纸。

结果核对:失败后旧文档已清理;重新打开时再次检查当前画面与 Active 状态。

11.3 提交问题时带哪些信息

打开失败提供控件画面中的错误、宿主看到的 Active 值及文件是否存在;图层问题提供名称和当前可见性;坐标问题提供输入像素、系统缩放和转换结果;位图问题提供保存返回值、文件大小和正常窗口截图。这样维护人员能够沿着同一操作顺序复现,而不是只看到一句“控件不能用”。

11.4 把说明书变成宿主里的帮助入口

使用带本轮帮助功能的新构建时,先单击中央控件取得焦点,再按 F1,可在默认浏览器打开随包的本地操作手册。注册窗口中的 F1 对应注册章节。先前已经发布的 OCX 没有这项快捷键,仅复制手册文件不会为旧控件增加 F1;需要配套更新控件和 help 文件夹。

如果按下 F1 没有打开本书,先确认键盘焦点在控件或注册窗口,再检查宿主是否拦截了这个按键。新包中应完整保留 help/cadviewx/ 与 help/assets/,文件缺失时按配套版本恢复。离线帮助打开后,点击左侧目录跳转,使用查找框搜索按钮,点击截图查看放大图;按 Esc 关闭放大图并回到正文。

宿主可以在自己的帮助按钮中定位到打开、图层、坐标或输出章节。用户正在查看图纸时,应保留图纸窗口的当前位置,不为了显示帮助再次加载文件。解释错误时给出下一步,例如“检查配套解析器后重新打开”,比仅显示一个错误编号更容易执行。对不支持的保存操作,帮助入口应直接说明格式边界,避免用户反复尝试同一个动作。

维护人员更新控件后,还应更新宿主帮助中显示的版本和截图。若正式宿主的按钮名称与本示例不同,在自己的操作说明中采用实际名称;不要让用户按本示例寻找宿主没有提供的工具条。中央预览能力可以复用,外围业务流程仍由每个宿主的产品设计决定。

本页使用真实 VB6 / Excel 宿主、原 OFFICE 录屏及随附示例宿主素材。连续图解按原像素提供完整界面或局部裁图,官网图片不加序号或定位框;编号定位与同号步骤仅用于新版图解 Word。各图题注明相应素材来源与版本。

配套练习文件

先把练习文件保存到自己的练习文件夹,再按正文操作。示例文件用于熟悉功能,不含可用于激活的软件授权。

高清截图操作截图
双击图片切换显示方式;原始像素模式可上下左右滚动0 适合窗口 1 原始像素 Esc 关闭
访问统计与隐私设置