1) 添加HtmlHelp.H头文件和HtmlHelp.lib库。在项目--属性--连接器--输入的附加依赖项中加入HtmlHelp.lib库文件,然后在连接器--常规--附加库目录中加入HtmlHelp.lib的目录位置。然后再工程中加入头文件#include “HtmlHelp.h”。
2)开始编写程序。
TCHAR szPath[ MAX_PATH ] = {0};
if ( GetModuleFileName( NULL, szPath,MAX_PATH ) )
{
(_tcsrchr(szPath,_T('\\')))[1] = 0;
}
_tcscat(szPath,_T("Help.chm"));
HWND hWnd=::HtmlHelp(GetSafeHwnd(),szPath,HH_DISPLAY_TOPIC,0);
if(hWnd==NULL)
{
AfxMessageBox("文档打开失败");
}
程序解析:(1)GetModuleFileName函数为windows的API函数,使用的时候需要包含windows.h的头文件;MAX_PATH是一个宏定义,值为260。执行完GetModuleFileName函数之后,szPath数组中保存的就是执行程序当前的绝对路径。
假设执行程序xp.exe的绝对路径为C:\Program Files\Dll\xp.exe,那么szPath数组中存储的值就是C:\Program Files\Dll\xp.exe。(2)根据执行程序的绝对路径得到需要访问的文件的绝对路径,将字符串截断,注意这里赋值为0,也就是其ASCII码,其对应的就是'\0'字符串结束符。_tcsrchr是获取某一字符最后一次出现的指针位置,这是unicode编程写法。(3)HtmlHelp函数必须要使用全局函数,如果使用CWND封装的函数会出错,打不开文档。
参考文章:http://blog.sina.com.cn/s/blog_780976a001015k1q.html