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.
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.
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.
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.
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.