headingS.jpg
Go to SMT home page Go to Popups

WinHelp What's This? Help as a Navigation Tool

When users open a What's This? popup from within a Windows program, you already have a lot of information about they are searching for. If you are careful, you can use these popups as part of the Help navigation system, and let the user jump directly to the desired detail topic rather than having to go back through the Table of Contents or index to search for it.

Calling the main or a secondary window from a WinHelp What's This? pop-up

The JumpID, Alink, and Klink macros work in application-called context popups. The main trick is that you must fully specify all parameters. You cannot skip the Help file name just because you are going to the same Help file.

In general you should not use KLinks for this purpose. This is what ALinks were designed for. KLinks have quite a few more bugs listed against them when used in ways other than to specify index entries. Though all of these have workarounds, the best workaround is usually to use the tool designed for the purpose--ALinks.

Go back to the top of this document

Calling a pop-up from a WinHelp What's This? pop-up

Use the PopupID function and specify all of the parameters. If you don't specify the Help file name (even for topics in the same Help file) you will get "out of memory" errors.

Go back to the top of this document

Calling an HTML Help File from a WinHelp What's This? pop-up

You can use WinHelp pop-ups to get fast, rich text pop-ups from which you can jump into the rest of an HTML Help system.

  1. Call the pop-up from your application using the HELP_CONTEXTPOPUP parameter in the call.
  2. Use the ExecFile macro to open the HTML Help topic
        EF(`hh.exe', `chmFileName::/topicFileName', 1, `'):CW(`windowType')

Using a secondary window for What's This? topics

If you use a secondary window (instead of a pop-up) for What's This? topics, you can do whatever you want in terms of jumps or popups, since WinHelp will be correctly initialized prior to opening the window. This method is slightly slower than using pop-ups. You also have to be a bit trickier about closing the topic, since it doesn't close automatically when it loses focus. A few things you can do are:

None of these solve the case where a secondary window is already open and you open another "popup" from the application, then click on the original secondary window again. The only way to be sure it closes when it loses focus is to monitor the current window with a DLL and close the "popup" if the current window changes. If you have a programmer who can create a DLL for you, this is the most elegant solution.

Go back to the top of this document


Copyright 1998 by Don Lammers. Last updated 1998-11-24.
Shadow Mountain Tech Home Page | Popups