Library tutorials & articles

Creating HTML Help

Mapping Topics to Ids

In order to be able to specify what topic to display from your VB program, you need to map Topics to ID's, and then give the ID's values.

The first thing we need to do is alias the topics to topic ID's. Even if you specify a topic ID within the topic file itself, you may as well do it as a comment, because the workshop has no way to extract that information.  Click on the API button , and go to the Alias tab of the resulting dialog box:

Click add to specify a Topic ID for each topic file:

We use the IDH naming system because every one else does - it has become the standard, and who are we to argue? Try to make the Topic ID as clear as possible, so that you can remember what topic it links to, even after a hard days work. Then, select the file you want it to refer to.

Next, we need to assign a value to the Topic ID constant (that we will pass from VB). The HTML Help workshop does not allow you to do this, so, save your work and close the project, and go back to notepad. Go to the Alias section, and you will see some ID's, and the files you have assigned them to.

[ALIAS]
IDH_FIND_DIALOG=htmlfind_dialog.htm
IDH_DLG_INSERT_SYMBOLS=htmlinsert_symbols.htm
IDH_WELCOME=htmlwelcome.htm

Now, go to the Map section (which probably does not actually exist yet, in which case, create it below the Alias section). We need to add some statements that will assign a value to each Topic ID. We use the following syntax:

#define TOPIC_IDCONTEXT_INTEGER

Here is an example:

[MAP]
#define IDH_FIND_DIALOG 1010
#define IDH_DLG_INSERT 1020
#define IDH_WELCOME 1000

Again, because every one else does, the Context Integers start from 1000 and work up in increments of 10. Save the file, and reload the file from the HTML Workshop. 

Comments

  1. 10 Mar 2008 at 05:33

    hi,

    i sent u how retrive the file

    if you want how to create and the rest of the process, pls give some time

    bye

     

  2. 10 Mar 2008 at 05:31

    HI, i found this is the one of of the way we can creat and its very simple;

     

    System.Diagnostics.Process process = new System.Diagnostics.Process();process.StartInfo.FileName = System.AppDomain.CurrentDomain.BaseDirectory + "Urfile.chm";

    process.Start();

    This will work definitely.

    BYE

     

     

  3. 29 Sep 2006 at 19:21

    Hi.  I went through your tutorial on creating HTML Help, but keep running into a very basic problem.  After compiling the help file for the first time and opening up the chm file, my home.htm file does not display at all in the right window.  I get the help file window (with the HIDE, BACK, FORWARD, etc. displayed, but the window on the right is blank.  I followed your tutorial step by step, saved the html files in the directories as indicated, etc.  What am I doing wrong?  I receive no error messages or security warnings.  Thanks in advance!

  4. 13 Jul 2006 at 13:51

    Can you give me any detail or any url where I can find about how to create chm files programmatically using C#??

    Thanks in Advance

    Nilesh Gambhava

  5. 12 Jul 2005 at 14:26

    i have tried to make popup in html help but coudn't. can somebody help.

  6. 08 May 2004 at 12:28

    I have kinda the same problem. Showing a topic works for me if the pages are within the chm file, however, if a topic is on a web site,
    even though I can retrieve them by ciking on them, with the HtmlHelp function, both using HHDISPLAYTOPIC and HHHELPCONTEXT..
    the help viewer jumps to the topic, but fails retrieving the page on the content pane. It does seem to synchronize, it doesn shange the content pane, but to a bad page, like it wants it to be within it.. or I don't really know. So please please, someone help me! you know what to do? have seen this?

  7. 10 Jan 2004 at 15:09
    Figured out my problem, because I was frustrated I started changing things needlessly (I know not a good programming troubleshooting technique ) and realized that it is not suppost to be HH_DISPLAY_TOPIC but that it should be HH_HELP_CONTEXT and everything worked just fine.
  8. 24 Dec 2003 at 00:11

    Hi, I read your entire article and it really helped a lot but I can't wrap up what I've made because for some reason the help file just won't show.

    Code:

    Private Sub mnuHelpHowto_Click()
     HTMLShowTopic 1030
    End Sub


    ...


    Public Sub HTMLShowTopic(lngTopicID As Long)


     ' Force the Help window to load a specific topic.
     ' The Help window will synchronize the
     ' Contents display automatically
     htmlhelp hwnd, App.helpfile & ">Main", HHDISPLAYTOPIC, lngTopicID


    End Sub



    I don't quite understand why it will not show the help file, my comp appears to be processing something but in the end it does not show the help file.  If I specify 0 as the lngTopicID it does show the window but at the default topic, not the topic I want it to show.  FYI I have mapped the numbers to a file using the notepad trick.

  9. 06 May 2003 at 08:15

    Great I can use this now I understand it!
    Well Done!


  10. 23 Mar 2003 at 20:58

    I followed the article and it fixed many of my problems but ...
    I'm having problems displaying popup text with textboxes.


    'No help ID matches control ID #...


    Iv'e tested the popup text files outside the app and they're find. My code works with command buttons (only?).


    Any ideas??

  11. 08 Jan 2003 at 02:30

    Excellent topic! this is very helpful, thanks a lot. It has been a great jumpstart for integrating html help file in VB. Hope you can include topics on popups.

  12. 23 Nov 2002 at 15:54

    Absolutley brilliant. Very informative easy to understand and a great enjoyment to read please keep up the good work  

  13. 31 Aug 2002 at 08:02

    Yes i do still have this problem.


    Thankyou for your responce, unfortunatly i still cannot resolve my problem.


    I have looked through some of the links you posted and i will look at the others in more detail when i have more time.


    Thanks again.

  14. 29 Aug 2002 at 21:02

    Stevesoft,


    In the unlikely event that you're still struggling with this problem...


    > I have followed this tutorial and have the following problem:
    >
    > The code for displaying the contents or the index only works after i
    > have pressed F1 to display help.
    >
    > Once i have done this once, the code works fine...... why is this?


    The following are the principal documents on connecting HTML Help to an application. Maybe these will help.


    http://www.smountain.com/mProgrammingHelp.htm (VB, C++)
    http://www.mvps.org/htmlhelpcenter/mapping.htm
    http://www.mvps.org/htmlhelpcenter/whcomplete.htm (VB)
    http://www.workwrite.com/helpthink/vb
    liske.htm (VB)
    http://helpware.net/delphi/index.html (Delphi)
    http://www.workwrite.com/helpthink/delphi_chandler.htm (Delphi)


    Pete

  15. 29 Aug 2002 at 20:55

    rollershade,


    Just came across your message. Here's a very belated follow-up, in the unlikely event you still need this information.


    > the ordinal 373 could not be located in the dynamic link library HHA.dll


    Make sure that all the HTML Help runtime DLLs are properly installed and registered, using either:


    HTML Help DLL Registrar (http://www.helpfulsolutions.com/)
    MJ's Help Diagnostics (http://helpware.net/downloads/index.htm)


    > the link u gave for the microsoft page cant be found


    This was changed a little while ago to http://msdn.microsoft.com/library/en-us/htmlhelp/html/vsconHH1Start.asp.


    Pete

  16. 14 Jul 2002 at 16:33

    i have installed it from the vb6 cd , but i try and run the html workshop, and i get this error


    the ordinal 373 could not be located in the dynamic link library HHA.dll


    any ideas, and the link u gave for the microsoft page cant be found

  17. 07 Jul 2002 at 12:36
    I have followed this tutorial and have the following problem:

    The code for displaying the contents or the index only works after i have pressed F1 to display help.

    Once i have done this once, the code works fine...... why is this?

    Stevesoft
  18. 01 Jan 1999 at 00:00

    This thread is for discussions of Creating HTML Help.

Leave a comment

Sign in or Join us (it's free).

James Crowley James first started this website when learning Visual Basic back in 1999 whilst studying his GCSEs. The site grew steadily over the years while being run as a hobby - to a regular monthly audience ...
AddThis

Related discussion

Related podcasts

  • Christian Beauclair

    14 mai 2008 (�mission #0074) ::.Christian Beauclair: Stratégies de migration VB6 vers .NET Nous discutons avec Christian Beauclair des stratégies de migration VB6 vers .NET. Entre autres, nous discutons comment utiliser le "VB 6 Code Advisor" et le "Interop Forms Toolkit" pour ajouter la puiss...

We'd love to hear what you think! Submit ideas or give us feedback