### 连接HTML帮助到C++/MFC程序 #### 概述 本文档主要介绍了如何将HTML帮助集成到C++/MFC程序中。它不仅涵盖了基础的连接过程,还涉及了如何直接从C++代码打开HTML帮助文档以及如何在程序中实现上下文相关的帮助功能。此外,文档还提供了一些资源链接,便于读者深入了解和学习。 #### 范围 本文档主要针对的是使用Visual Studio 6进行开发的情况,虽然如此,Microsoft Foundation Classes (MFC) 提供了多个钩子接口,使得开发者能够轻松地与任何形式的在线帮助系统(包括HTML帮助)进行集成。此外,通过调用HtmlHelp API,开发者还可以在程序中的任何位置访问帮助功能。这部分内容适用于所有版本的C++,因为它详细介绍了Windows API调用以及HTML帮助命令行界面的相关知识。 #### 致谢 文档中的信息来源于作者的实验结果以及前人的经验分享。感谢以下个人和资源对本指南做出的贡献: - Microsoft HTML Help Workshop帮助文档 - Microsoft Knowledge Base - 《Developer's Guide to WINHELP.EXE》(Jim Mischel) - 《Building Windows 95 Help》(Nancy Hickman) - Paul O'Rear - 《Developing Online Help for Windows 95》(Boggan, Farkas, and Welinske) - Gordon F. MacLeod - Burt Abreu #### 连接上下文相关的HTML帮助到C++/MFC程序 MFC为调用WinHelp主题提供了WinHelp函数,该函数是CWnd类的一部分,如果你使用App Wizard创建应用程序,则主窗口会继承这个类。此外,你还可以覆盖对话框的处理程序来实现更高级的帮助功能,例如F1或右键点击时触发的帮助。为了使用HTML帮助,你需要覆盖默认的WinHelp函数,并直接调用HtmlHelp API。 #### 创建带有内置帮助的程序 由于需要覆盖自动化挂钩,且App Wizard还会创建WinHelp文件(这些文件在转换为HTML帮助时需要被移除),因此创建挂钩的主要原因是为了获得帮助框架,以便将其转换为HTML格式。以下步骤将指导你完成这一过程: 1. **创建基本的MFC应用程序**:使用App Wizard创建一个新的MFC应用程序。 2. **配置项目设置**:在项目设置中添加必要的HTML帮助库,确保你的项目支持HTML帮助。 3. **覆盖WinHelp函数**:在主窗口类中重写WinHelp函数,以支持HTML帮助。这通常涉及到替换默认的WinHelp调用,改为调用HtmlHelp API。 4. **编写HTML帮助文件**:使用HTML、CSS等工具创建帮助文档。可以使用Microsoft HTML Help Workshop来编译这些文件。 5. **集成HTML帮助**:通过调用HtmlHelp API函数,如HtmlHelp函数,将HTML帮助文件集成到程序中。 6. **测试帮助功能**:确保帮助文档能够在程序中正确加载,并且响应用户的操作。 #### 直接从C++代码打开HTML帮助 除了通过标准的帮助挂钩外,你还可以直接从C++代码中调用HtmlHelp API来打开HTML帮助文档。这种方式非常适合于实现特定场景下的帮助显示,例如错误提示、复杂操作引导等。下面是一些示例代码,展示了如何调用HtmlHelp API: ```cpp #include <windows.h> void ShowHTMLHelp(const char* helpFilePath, int id = 0) { HtmlHelp(NULL, helpFilePath, HH_DISPLAY_TOPIC, id); } ``` #### 训练卡片 训练卡片是一种特殊的帮助形式,可以在程序运行时为用户提供逐步的指导。它们可以作为HTML帮助的一部分集成到程序中,以增强用户体验。在C++代码中,可以通过调用特定的HTML帮助API来显示训练卡片。 #### 资源 - [Microsoft HTML Help Workshop](https://docs.microsoft.com/en-us/windows/win32/learnwin32/html-help-workshop) - [MFC文档](https://docs.microsoft.com/en-us/cpp/mfc/) - [Windows API 文档](https://docs.microsoft.com/en-us/windows/win32/api/) 通过上述步骤和资源,你可以成功地将HTML帮助集成到C++/MFC程序中,为用户提供更加丰富和交互式的帮助体验。























剩余19页未读,继续阅读


- 粉丝: 24
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- sqlite-jdbc-3.8.11.1.jar中文-英文对照文档.zip
- sqlite-jdbc-3.8.10.2.jar中文-英文对照文档.zip
- sqlite-jdbc-3.14.2.1.jar中文-英文对照文档.zip
- sqlite-jdbc-3.14.2.jar中文-英文对照文档.zip
- sqlite-jdbc-3.15.0.jar中文-英文对照文档.zip
- sqlite-jdbc-3.16.1.jar中文-英文对照文档.zip
- sqlite-jdbc-3.19.3.jar中文-英文对照文档.zip
- sqlite-jdbc-3.18.0.jar中文-英文对照文档.zip
- sqlite-jdbc-3.20.0.jar中文-英文对照文档.zip
- sqlite-jdbc-3.20.1.jar中文-英文对照文档.zip
- sqlite-jdbc-3.21.0.1.jar中文-英文对照文档.zip
- sqlite-jdbc-3.21.0.jar中文-英文对照文档.zip
- sqlite-jdbc-3.23.1.jar中文-英文对照文档.zip
- sqlite-jdbc-3.27.2.1.jar中文-英文对照文档.zip
- sqlite-jdbc-3.27.2.jar中文-英文对照文档.zip
- sqlite-jdbc-3.30.1.jar中文-英文对照文档.zip


