发信人: jkf(任逍遥)
整理人: jkf(2001-04-06 14:15:02), 站内信件
|
---- 1 概述
---- 如果您正着手编写基于Windows CE的商品化程序,一定希望能够找到一种简单的方法,轻松编写自定义的帮助文件。笔者在编程实践中也遇到了类似的问题。在这里我们将介绍两种方法去构造和处理一个简单的独立帮助文件。该帮助文件包含了一个内容表,并允许用户在各个主题之间进行转换。读者也可套用该例,将相应的内容略作修改即可。
---- 2 Windows CE下的帮助文件
---- Windows的最早版本中已经提供了在线帮助功能。在Windows CE 之前,Windows帮助体系是基于WinHelp机制的。由于Windows CE设备的空间非常有限,若仍采用WinHelp 机制是非常不切实际的。但是,Windows CE 确实有它自己的帮助机制,叫做“袖珍帮助”(Pocket Help)。Windows CE 并未采用WinHelp超文本语法。Pocket Help文件可用HTML语言来编写。
---- 通常Windows CE下的帮助文件有下面两种类型:Content File和Section File。其中Content File是主要的帮助文件,它将其它的帮助文件连接起来。扩展名为.htc。它必须存放在\Windows目录下。Section File包含与其它文件的超级链接和信息,它可以存在于Windows CE文件系统的任何位置,扩展名为.htp。
---- 由于在Windows CE设备上要考虑空间大小,提供无穷无尽的在线帮助是不可能的。在应用中,Windows CE的帮助文件应该只包含普通任务和键盘命令的信息,更多的详细信息应存放在其它形式的文档中。
---- 3 应用程序框架与帮助文件
---- 下面我们将编写一个简单的带一个内容表及四个主题的帮助文件。这里我们将用Windows CE for Visual C++ 5.0 Embedded Tool Kit来实现。
---- 3-1 利用AppWizard来创建帮助文件
---- 首先,创建一个MFC风格的工程(WCE MFC AppWizard(exe))。当运行AppWizard时,注意要选择Context_Sensitive Help选项。
---- 第二步,建立帮助文件。这里,我们将分别建立五个帮助文件:MyHelp.htc及Subject1.htp、Subject2.htp、Subject3.htp、Subject4.htp。其中Subject2.htp、Subject3.htp、Subject4.htp的内容类似于Subject1.htp,在这里就不在详细列出。这五个文件可采用任意一种编辑器编辑,如VC的编辑器。其代码如下所示。
“MyHelp.htc”
< HTML >
< HEAD >
< META HTTP-EQUIV=refer content=”” >
< /HEAD >
< BODY >
< H5 >Example Help File< /H5 >
< MENU >
< li >< a href=”file:Subject1.htp” >
Subject 1 Help< /a >
< li >< a href=”file:Subject2.htp” >
Subject 2 Help< /a >
< li >< a href=”file:Subject3.htp” >
Subject 3 Help< /a >
< li >< a href=”file:Subject4.htp” >
Subject 4 Help< /a >
< /MENU >
< /BODY >
< /HTML >
“Subject1.htp”
< HTML >
< HEAD >
< META HTTP-EQUIV=refer
content=”file:MyHelp.htc” >
< /HEAD >
< BODY >
Subject 1 of the example help file
< /BODY >
< /HTML >
---- 第三步,将MyHelp.htc及Subject1.htp、Subject2.htp、Subject3.htp、Subject4.htp存放在Windows CE文件系统的\Windows目录下。
---- 若是在台式PC机上调试,操作工作如下: 1) 在开始菜单中选程序(P),Windows CE Platform SDK,Windows CE Remote Tools,Remote CE OS View。
---- 2) 将编辑好的MyHelp.htc及Subject1.htp、Subject2.htp、Subject3.htp、Subject4.htp复制到Emulator Files 下的\Windows目录下。
---- 第四步,将AppWizard生成的应用程序修改一下。将theApp()中参数修改一下,变为theApp(_T("工程名"), _T("MyHelp.htc")),其中工程文件名为用户的工程名。最后,当程序运行时当用户点击帮助按钮时,程序就会显示相应的帮助主题,见画面一(略)。当用户点击Title for Topic 1后,即会出现画面二(略),当按返回按钮后即可回到画面一。
---- 3-2 手动创建帮助文件
---- 若您在创建工程时,在运行AppWizard时未选择Context_Sensitive Help选项,怎么办?没关系,您只需在原有程序基础上手工添加上帮助文件即可。
---- 例:假设已有一名为newhelp.dsw的工程。在创建时没有选择Context_Sensitive Help选项。现在工程中加入一个按钮,希望按下此按钮后即可出现相应的帮助主题。可操作如下:
---- 首先,将CNewhelpApp类的构造函数中增加一个参数。即将“ CNewhelpApp(LPCTSTR lpszAppName )”修改为“CNewhelpApp(LPCTSTR lpszAppName,LPCTSTR lpszHelpName)”;
---- 其次,将“CNewhelpApp theApp(_T("newhelp"))”修改为“CNewhelpApp theApp(_T("newhelp"),_T("myhelp.htc"))”;
---- 最后,将按钮的ID设为“ID-HELP”,在类CnewhelpApp的消息映射中增加语句“ON_COMMAND(ID_HELP, CWinApp::OnHelp)”即可。
---- 4 小结
---- 上面我们简单地介绍了利用AppWizard的Context_Sensitive Help选项及手动建立帮助文件两种方法。通过上面的介绍,读者可以发现:利用AppWizard(exe)创建的帮助功能,只能由AppWizard产生的标准的带问号的帮助按钮来激活;而利用手工来添加帮助文件则要灵活的多。程序员可根据程序需要灵活地添加相应的帮助文件。两种方法均不难掌握。
---- 本文并未详细讨论HTML的语法,读者可参见相应的语法书籍,进一步修饰、扩充文中的例子的功能,希望本文能够对所有正准备编写Windows CE环境下的帮助文件的程序员有所帮助。
---- 哦 又是我任逍遥 |
|