Click here to Skip to main content
6,306,412 members and growing! (16,641 online)
Email Password   helpLost your password?
General Programming » WinHelp / HTMLHelp » General     Intermediate License: The Code Project Open License (CPOL)

Creating and Using HTML Help in MFC applications

By Nguyen Thanh Phuong

Managing HTML Help from scratch
C++, Windows, Visual Studio, Dev
Posted:13 Mar 2006
Updated:3 Jul 2006
Views:37,090
Bookmarked:39 times
Unedited contribution
Announcements
Loading...
 
Search    
Advanced Search
printPrint   Broken Article?Report       add Share
  Discuss Discuss   Recommend Article Email
17 votes for this article.
Popularity: 4.42 Rating: 3.59 out of 5

1
4 votes, 23.5%
2
2 votes, 11.8%
3
3 votes, 17.6%
4
8 votes, 47.1%
5

HTML_Help_6.GIF

Introduction

Last time I tried to search the Internet to get a complete guide of using HTML in an MFC application. I found that there are many topics concern with HTML Help but none of them have the same purpose with my desired work, so after working with HTML Help Workshop and researching documents, I finally decided to write a topic about working with HTML help from scratch.

In this presentation, I'll take you through 9 steps in 2 main stages to integrate an HTML help file with an MFC application. The 2 main stages are:

  1. Create HTML Help files.
  2. Link HTML file to your own MFC application.

Stage 1: Create *.chm (Compiled Help Modul) file

First of all, you need to have HTML Help Workshop installed, it can be downloaded from: Microsoft HTML Help Downloads.

Edit your own *.chm file (Compiled Help Module). You can start from the beginning but I think you’d better modify an existing .chm file that have the same structure with your desired .chm file. Do the following steps:

Step 1. Open HTML Help Workshop.

Step 2. Click File->Decompile

Step 3. Choose destination folder where you want to store files after decompiling. You should create a new folder to store files because many files would be generate after decompiling.

  • Select the existing .chm file.
HTML_Help_1.GIF

In this example, I use PowerDVD.chm file because it has the same help structure with my application.

Step 4. Using an HTML Editor, MS Frontpage for example, to edit the content of the HTML file(s) that has been extracted by HTML Help Workshop to the content that you want to have. This step is alike the process you edit a website.

Step 5. Import and Compile your own help

  • Click File->New->Project. One dialog appear, select Next.
  • Assign a name for the project. Click Next.
  • Check all checkboxes you see in the new dialog. Click Next.
  • In the next three dialog, the New Project Wizards will ask you to locate the table of contents, the Help index and the html files. You simply choose the appropriate files that HTML Help Workshop has extracted in the folder in Step 3. Click Next each time you've answered one dialog.
  • Click File->Compile

That all you need to do to create your own .chm file, now forward to the 2nd stage.

Stage 2: Aggregate Help file to MFC application

Step 6. Create a registry key:

  • Open command window, type regedit

  • Browse to KEY_LOCAL_MACHINE\Software\Microsoft\Windows\HTMLHelp
  • Create a new string value as follows:
    • Value name is your HTML help file name, for example: SampleHelp.chm
      • Value data is the path where the .chm file locate, for example: C:\TestHelp\MyHelp\ (remember to put one back-slash at the end).

HTML_Help_5.GIF

Step 7. Create an MFC application.

Step 8. Import htmlhelp.lib to your application

  • Right click on the Resource Files->Add Files to Folder.
  • Select htmlhelp.lib.

HTML_Help_3.GIF

Step 9. Call Help

  • Create a button.
  • Add this line in the TestHelpDlg.cpp
#include "htmlhelp.h"
  • Assign an even to call the Help
void CTestHelpDlg::OnHelp() 
{
  HtmlHelp(this->m_hWnd, "HelpSample.chm", HH_DISPLAY_TOPIC, NULL);
}

That's your work done!

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Nguyen Thanh Phuong


Member
I am Vietnamese. I am PhD Student in Germany. My study is Information Technology.
My interest is wiki & programming.
Willing to share experience!
Occupation: Web Developer
Location: Vietnam Vietnam

Other popular WinHelp / HTMLHelp articles:

Article Top
You must Sign In to use this message board.
FAQ FAQ 
 
Noise Tolerance  Layout  Per page   
 Msgs 1 to 16 of 16 (Total in Forum: 16) (Refresh)FirstPrevNext
GeneralCLR PinmemberNicolas29298:03 3 May '09  
GeneralAre you able to catch "What's This" htmlhelp requests in a CFormView? PinmemberMember 34553989:03 13 Nov '08  
GeneralHi,i can't down demo project Pinmembersomnuc8:10 13 Oct '08  
GeneralModifications Pinmemberasalvat8:49 9 Apr '08  
QuestionDisplaying a perticular topic in .chm file. Pinmemberbankey10100:44 18 Oct '07  
GeneralProblem with HtmlHelp Pinmemberdandany5:33 12 May '07  
GeneralRe: Problem with HtmlHelp PinmemberAlfonsoFuentes9:13 14 Jun '08  
GeneralRegistry entry PinmemberPhil Sobolik10:51 12 Feb '07  
GeneralThank you PinmemberBig Mouse18:58 18 Dec '06  
GeneralVisual C++ 2005 Upgrade? PinmemberDrTom210:45 26 Nov '06  
Generalcalling html help Pinmemberh_rw0:06 15 Jun '06  
GeneralRe: calling html help PinmemberNguyen Thanh Phuong17:20 15 Jun '06  
GeneralNice! Pinmemberthompsons11:24 2 Apr '06  
Generaldebug version Pinmemberv2.00:16 14 Mar '06  
GeneralRe: debug version PinmemberNguyen Thanh Phuong17:15 14 Mar '06  
GeneralRe: debug version Pinmemberv2.022:08 14 Mar '06  

General General    News News    Question Question    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

PermaLink | Privacy | Terms of Use
Last Updated: 3 Jul 2006
Editor: Sean Ewington
Copyright 2006 by Nguyen Thanh Phuong
Everything else Copyright © CodeProject, 1999-2009
Web13 | Advertise on the Code Project