明经通道 AutoLISP 函数  
setfunhelp
 

给帮助工具注册一个用户定义函数,这样,用户在请求该命令的帮助时,就会调用正确的帮助文件和主题

(setfunhelp c:fname [helpfile [topic [command]]])

参数

c:fname

字符串,指定用户定义命令(C:XXX 函数)其中必须包含 c: 前缀。

helpfile

字符串,命名帮助文件。在 helpfile 参数中不需要指定文件扩展名。如果指定了扩展名,则 AutoCAD 仅查找完全匹配的文件。

如果不指定文件扩展名,AutoCAD 在查找 helpfile 时自动添加扩展名 .hlp。如果未找到同名文件,AutoCAD 继续查找扩展名为 .ahp 的文件。如果仍未找到,则 AutoCAD 搜索不含扩展名的 helpfile。

topic

字符串,指定帮助文件的主题标识符。

command

字符串,指定帮助窗口的初始状态,command 参数是 HtmlHelp() 和 WinHelp() 函数的 uCommand(在 HTML 帮助中)或 fucommand(在 WinHelp 中)参数所使用的一个字符串,HtmlHelp() 和 WinHelp() 函数的定义可参见 Microsoft Windows SDK 中的 WinHelp API。

对于 HTML 帮助文件,command 参数可以是 HH_ALINK_LOOKUP 或 HH_DISPLAY_TOPIC 值,对于 Windows 帮助文件,command 可以是 HELP_CONTENTS, HELP_HELPONHELP, 或 HELP_PARTIALKEY。

HH_ALINK_LOOKUP 显示帮助文件的“索引”项。

HH_DISPLAY_TOPIC 显示帮助文件的“目录”项。

HELP_CONTENTS 显示帮助文件的第一个主题。

HELP_HELPONHELP 显示“如何使用帮助”的帮助。

HELP_PARTIALKEY 显示搜索对话框,将传送的字符串作为初始搜索文本。

返回值

如果成功则返回作为 c:fname 传递的字符串,否则返回 nil。

该函数仅检查 c:fname 参数是否带有前缀 c:,而不检查函数是否存在或其他参数是否正确。

示例

下面的样例定义了一个简单函数,并使用 setfunhelp 函数使它与 AutoCAD 帮助文件 (acad.chm) 的 circle 主题联系起来:T

(defun c:foo ()
  (getstring "按下 F1 调用 foo 命令的帮助:")
)
(setfunhelp "c:foo" "acad.chm" "circle")

加载代码后,使用 foo 命令,然后按 F1 键显示 circle 主题。

该样例只是一个示例,而没有实际意义。在实际使用中,可以创建自己的帮助文件,然后将帮助文件和函数联系起来。

定义名为 test 的函数:

命令: (defun c:test()(getstring "\nTEST: " )(princ))

C:TEST

将函数与帮助文件关联起来,使用 HELP_PARTIALKEY fuCommand 和字符串“line”调用帮助:

命令: (setfunhelp "c:test" "acad.chm" "line")

"c:test"

执行 test 命令,并在命令行提示下按 F1 键。这时应出现帮助索引,其中“line”作为要查找的关键字出现在查找框中。

注意 使用 defun 函数定义 C:XXX 函数时,它会取消由 setfunhelp 注册的同名函数(如果存在的话)。因此,只能在调用 defun 函数定义一个用户定义的命令后,才能调用 setfunhelp 函数。

参阅

defunhelp 函数。

明经通道 版权所有 未经许可 不得传播

 评论