设为首页 加入收藏

TOP

应用软件联机帮助文件的制作(六)
2012-11-04 15:18:58 来源: 作者: 【 】 浏览:934
Tags:应用软件 联机 帮助 文件 制作
  在应用程序中启动帮助

  如果当前系统安装了HtmlHelp阅读器Hh.exe,就可以直接运行HtmlHelp Workshop制作的CHM帮助文件了(通常,Windows系统就已经安装有Hh.exe)。在资源管理器中,双击编译过的CHM文件就可以运行此帮助文件。这里将要介绍如何在应用程序中启动CHM文件。

  在应用程序中对CHM帮助文件的调用由HtmlHelp API函数HtmlHelp()来完成,由HtmlHelp.dll动态链接库提供。为了能够在程序中使用该函数,需要将htmlhelp.lib、htmlhelp.h等文件加入到工程。可在VC的Project菜单下的Setting菜单项所启动的设置对话框中对其进行配置。


图21 设置HtmlHelp.h文件的路径

  首先,在C/C++(www.cppentry.com)选项页中设置要包含的HtmlHelp.h头文件的存放路径。在Category中选取Preprocessor选项后,将出现如图21所示的参数设置界面,在Additional include directories编辑框中输入HtmlHelp.h头文件的存放路径。然后再到Link选项页中对要包含的Lib库进行设置。先在Category中选取Input,将出现如图22所示的参数设置界面。

  在其Additional library path编辑框中输入要包含的HtmlHelp.lib库文件的存放路径。在完成上述两步路径设置后就可以添加HtmlHelp.h头文件和HtmlHelp.lib库文件到工程了。HtmlHelp.h头文件的添加非常简单,只需在工程的stdafx.h最后一个#include语句后面添加一条#include "htmlhelp.h"即可。对于HtmlHelp.lib库文件的添加,仍是在Link选项卡中进行,将Category该回到General,并在图23所示的界面中,在Object/libraries module编辑框中添加HtmlHelp.lib即可。

  完成上述设置的对话框将可以直接使用HtmlHelp()函数。该函数原形为:

HWND HtmlHelp(HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD dwData);

  参数hwndCaller为调用HtmlHelp()的窗口句柄,pszFile为文件、URL或是经过编译的HTML文件的路径,uCommand指定了要执行的动作,dwData为uCommand所需要的参数。


图22 设置HtmlHelp.lib库的路径


图23 加入HtmlHelp.lib库文件

  对于CHM帮助文件的启动,应将uCommand参数设置为HH_DISPLAY_TOPIC,这时dwData可以为0或是一个指向CHM帮助文件的指针。如果需要在启动CHM帮助文件时显示特定的帮助页面,可以在pszFile所指向的CHM帮助文件存放路径后添加带有"::"前缀的页面名称。例如,下面这段代码将在程序中启动编译过的CHM帮助文件,并显示其中的a.htm页面:

// 得到可CHM文件的路径
char exeFullPath[MAX_PATH];
CString strPath;
GetModuleFileName(NULL, exeFullPath, MAX_PATH);
strPath = CString(exeFullPath);
strPath = strPath.Left(strPath.ReverseFind('\\'));
strPath += "\\Sample72.chm";
// 设置显示的初始页面
strPath += "::a.htm";
char cCommandLine[MAX_PATH];
::strcpy(cCommandLine, strPath);
// 显示CHM帮助文件
HtmlHelp(GetSafeHwnd(), cCommandLine, HH_DISPLAY_TOPIC, 0);

  小结

  本文较为全面的对HtmlHelp联机帮助系统的制作、编译以及在应用程序中的调用做了介绍。通过本文所述方法将能够制作出一个初具专业水准的帮助系统。HtmlHelp Workshop工具除了可以制作软件的帮助系统外,还可以用其来制作.chm格式的电子图书。与制作帮助系统一样,其关键仍是对内容的组织与编排。


首页 上一页 3 4 5 6 下一页 尾页 6/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Windows下的高级动画技术浅析 下一篇用Visual C++实现远程线程嵌入技术

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: