应用软件联机帮助文件CHM的添加

      如果当前系统安装了HtmlHelp阅读器Hh.exe,就可以直接运行HtmlHelp Workshop制作的CHM帮助文件了(通常,Windows系统就已经安装有Hh.exe)。在资源管理器中,双击编译过的CHM文件就可以运行此帮助文件。这里将要介绍如何在应用程序中启动CHM文件。
  
在应用程序中对CHM帮助文件的调用由HtmlHelp API函数HtmlHelp( )来完成,由HtmlHelp.dll动态链接库提供。为了能够在程序中使用该函数,需要将htmlhelp.lib、htmlhelp.h等文件加入到工程。可在VC的Project菜单下的Setting菜单项所启动的设置对话框中对其进行配置。首先,在C/C++选项页中设置要包含的HtmlHelp.h头文件的存放路径。在Category中选取Preprocessor选项后,在Additional include directories编辑框中输入HtmlHelp.h头文件的存放路径。然后再到Link选项页中对要包含的Lib库进行设置。先在Category中选取Input,在其Additional library path编辑框中输入要包含的HtmlHelp.lib库文件的存放路径。在完成上述两步路径设置后就可以添加HtmlHelp.h头文件和HtmlHelp.lib库文件到工程了。HtmlHelp.h头文件的添加非常简单,只需在工程的stdafx.h最后一个#i nclude语句后面添加一条#i nclude "htmlhelp.h"即可。对于HtmlHelp.lib库文件的添加,仍是在Link选项卡中进行,将Category该回到General,并在Object/libraries module编辑框中添加HtmlHelp.lib即可。或者可以将HtmlHelp.lib、HtmlHelp.h两个文件直接加到VC相关的库文件中也可。
  完成上述设置的对话框将可以直接使用HtmlHelp( )函数。该函数原形为:
HWND HtmlHelp(HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD dwData);
  参数hwndCaller为调用HtmlHelp( )的窗口句柄,pszFile为文件、URL或是经过编译的HTML文件的路径,uCommand指定了要执行的动作,dwData为uCommand所需要的参数。对于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);
 

你可能感兴趣的:(C/C++)