首页 > 编程 > HTML > 正文

如何用 Win32 SDK 编程创建Tri-p ane HTML Help 窗口

2020-03-24 16:09:26
字体:
来源:转载
供稿:网友

  HTML Help 使用户能在一个帮助窗口中使用工具棒、查看目录和帮助主题。目前,有两种方法创建 Tri-pane 类型的 HTML Help 窗口:

  使用 HTML Help Workshop 创建窗口

  使用 HTML Help API 编程创建窗口

  本文将介绍如何使用这两种方法创建Tri-pane HTML Help 窗口。

  使用预定义窗口

  在 HTML Help Workshop环境中很容易创建和修改工程的窗口定义,有关窗口定义的其它信息,请参考微软知识库文章:Q189084 HOWTO: Create a Tri-pane Window with HTML Help Workshop

  本文假设在你的html' target='_blank'>应用程序开发工具为 Visual C++,那么要在自己的程序中使用HTML Help帮助,必须借助于HTML Help提供的 API 函数;要调用这些 API 函数,就必须包含 htmlhelp.h 文件,并且将库文件 hhctrl.lib 或者 htmlhelp.lib 链接到自己的程序代码中。只要你安装了HTML Help Workshop环境,这些文件存放在 HTML Help Workshop下的 Include 和 Lib 目录中。

  在下面的示范代码中,sample.chm是一个编译好的HTML Help帮助文件,其中有一个叫“ mywindow”的窗口定义,下面的代码示范了如何在一个 MFC 程序中调用 HTML Help API函数:

  // CMainFrame message handler

  void CMainFrame::OnHelp()

  {

  // display the topic "intro.htm" in the window defined

  // in the HTML Help Workshop

  HtmlHelp(m_hWnd,"sample.chm::intro.htm>mywindow",

  HH_DISPLAY_TOPIC,0);

  }

  使用 HTML Help API

  为了创建 three-pane 窗口, 必须首先创建和填写HH_WINTYPE结构。 HH_WINTYPE结构在HtmlHelp.h中定义,详细说明参见HTML Help Workshop文档。 以下是一个例子:

  Sample Code

  ///////////////////////////////////////////

  // Create an HH_WINTYPE structure.

  {

  HH_WINTYPE m_hhWinType;

  // Initialize all structure members to zero.

  ZeroMemory(&m_hhWinType, sizeof(HH_WINTYPE));

  // Define a custom message for use with idNotify.

  // You are responsible for ensuring that this ID

  // does not conflict with other Windows/MFC messages.

  #define IDD_HELPTAB 69999

  // Set the size of the structure.

  m_hhWinType.cbStruct = sizeof(HH_WINTYPE);

  // Set up the properties of the HTML window:

  // tripane window, sync topic with index/TOC, and so forth.

  // NOTE: fsValidMembers - HHWIN_PARAM_PROPERTIES must be set.

  m_hhWinType.fsWinProperties = HHWIN_PROP_TRI_PANE |

  HHWIN_PROP_AUTO_SYNC;

  // Put BACK, HOME, FORWARD, and EXPAND buttons on toolbar pane.

  // NOTE: fsValidMembers - HHWIN_PARAM_TB_FLAGS must be set.

  m_hhWinType.fsToolBarFlags = HHWIN_BUTTON_BACK |

  HHWIN_BUTTON_HOME | HHWIN_BUTTON_FORWARD |

  HHWIN_BUTTON_EXPAND;

  // The file is in the right pane. The full path is not needed.

  m_hhWinType.pszFile = "intro.htm";

  // Full Paths or CHM locations of various files (if used).

  // To specify that a file is within a CHM, use the following

  // syntax: "CHMFileName.chm::FileName.xxx"

  // Home Page:

  m_hhWinType.pszHome = "c:mypathintro.htm";

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表