怎么在程序中打开*.chm文件。

pony_utc 2002-06-29 05:24:16
我用制作了一个sowoo.chm的帮助文件(其链接了一些网页),我要在VC中怎么打开他呢(我在菜单中有一栏叫帮助主题的,就是用来打开该文件的)。
...全文
113 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
bcb_fans 2002-06-29
  • 打赏
  • 举报
回复
ShellExecute(NULL,"open","HH.exe","yourHelpFile.chm",NULL,NULL...);
Wugifer 2002-06-29
  • 打赏
  • 举报
回复
在Viusal C++ 6中使用 HTML Help



  在 Visual C++ 6 中调用 HTML 帮助没有现成的函数,需要调用 HtmlHelp() 这个 API 函数。而在调用这个函数之前,还需要在你的工程中加上 HtmlHelp 的库文件和头文件:

  1. 指定 HtmlHelp.h 的路径。
  选择菜单“Project -> Settings...”,打开“Project Settings”对话框。
  选中“C/C++”选项卡,选择“Category”列表框的内容为“Preprocesor”,在“Additional include directories”项中填入包含“HtmlHelp.h”这一文件的路径。
  这个文件你可以在你的硬盘上找,如果你安装了“HTML Help Workshop”,那么在“HTML Help Workshop”程序目录下有个“Include”目录就是。

  2. 指定HtmlHelp.lib的路径。
  按照与前面类似的方法,选择“Link”选项卡,选择“Category”为“Input”,在“Additional library path”中填入包含“HtmlHelp.lib”文件的路径。
  同样,在“HTML Help Workshop”程序目录下的"Lib"目录就是。

  3. 指定Lib文件。同样在“Link”选项卡中,选择“Category”为“General”,在“Object/librarie module”中填入“HtmlHelp.lib”。

  4. 最后,将HtmlHelp.h包含在程序中。你可以选择一个合适的位置加入“#include <HtmlHelp.h>”这一句话,但我建议你将这句话加入到“Stdafx.h”中。

  注:以上所有内容在 MSDN 的“Including HTML Help Support Files in an Application”主题中均有介绍,在“搜索”选项卡中输入查找内容为“HtmlHelp”即可找到该主题。

  最后是大家都关心的问题,如何在程序中调用 HTML 帮助。

  如同在Visual Basic 6中使用HTML Help一样,首先需要定位帮助文件的位置。假如我们把帮助文件(.chm)放在程序路径下,那么我们该如何去获得程序路径呢?程序大本营上是使用的 API 函数 GetModuleFileName(),例如,我使用以下代码定位程序路径和取文件的完整路径文件名:

CString appPath;
GetModuleFileName(NULL, appPath.GetBuffer(MAX_PATH), MAX_PATH);
//注:使用该API函数得到的是程序文件完整路径文件名,去掉文件名后才是路径。
appPath.ReleaseBuffer();
int n = appPath.ReverseFind('\\');
CString helpFile;
helpFile = appPath.Left(n);
TCHAR c = helpFile.GetAt(n - 1);
if(c == '\\') helpFile += "HtmlHelp.chm";
else helpFile += "\\HtmlHelp.chm";
通过 HtmlHelp 调用帮助文件(.chm)的程序代码如下:

  HtmlHelp(NULL, (LPCSTR)helpFile, HH_DISPLAY_TOPIC, 0);
  //直接打开帮助文件的默认主题。

  或

  HtmlHelp(NULL, (LPCSTR)helpFile, HH_HELP_CONTEXT, 1);
  //打开其中一个主题,实现上下文相关的帮助调用。

pcman1990 2002-06-29
  • 打赏
  • 举报
回复
SYNTAX

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

hwndCaller
Specifies the handle of the window calling the HtmlHelp API. If the HtmlHelp API call results in messages being sent from the HTML Help window, they will be sent to this window handle.
pszFile
Specifies an HTML file, a URL, a compiled HTML file, or a window definition (preceeded with a ‘>’ character). If the command being used does not require a file or URL, this value may be NULL.
uCommand
Specifies the action to perform. See the Comments section for details.
dwData
Specifies any data that may be required based on the value of the uCommand parameter.


详细的请参见MSDN。
jaguarcts 2002-06-29
  • 打赏
  • 举报
回复
showhelpa()
pcman1990 2002-06-29
  • 打赏
  • 举报
回复
HtmlHelp()

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧