Copyright: Herd Software Development 1995-96


ThinHelp paning demo


Are your
authoring skills
up to this
kind of challenge?

Let’s find out...


It’s no illusion.

Your eyes are not deceiving you.  This paning effect is real, this is a helpfile, and the effect is achievable with ThinHelp thanks to its ability to allow watermarks to be hotspotted.  The background graphic is a normal Windows BMP file (it could also be a BMP-based SHG) which was used as a watermark and supplemented with four hotspots where the text appears.  The real action all takes place within this part of the window where the embedded frame appears.

Be warned...this is tricky authoring!  This simple demo took four hours to conceive, author and troubleshoot.  But if you’re as excited by this possibility as our beta testers were when they first saw it, you’re certainly free to give it a try and see where it takes you.

Viewer authors take note:

This little bit of wizardry is reserved for Winhelpers only.  You have your own methods of implementing paning; this technique is not Viewer-compliant.


We knew you’d want to know

Get ready for a bit of a technical roller-coaster ride, especially if you haven’t worked with compound macros or window styling techniques in Help or Viewer.

First we created the 256 color BMP file which is used as the watermark and “interface frame”.  Click the button at left if you want to see what the unvarnished BMP file looks like without background color or scroll bars.

Setting up the first watermark

We set up this watermark using the 0x8000 positioning parameter.  This watermarking parameter is not supported by Herd Software Development, but it is available for use at your own risk.  This parameter applies the watermark to the parent window only, allowing us to create a second watermark, right over top of the main watermark, which covers only a portion of the client region.

Creating a “pane area”

But before we can place the second watermark (the “pane”), we need to reposition the client region itself.  We used THMoveWindow(hwndContext, 168,45,299,253,1) for this task.  It resizes the client region to an area precisely the dimensions of the “pane” area defined in the “frame” bitmap.  (When THMoveWindow is used with hwndContext as the first parameter, it moves the client area of the window, not the whole window, thus giving us the effect we want.)

Planting the second watermark

Now we plant our second watermark squarely and neatly into the recessed-look area of the first watermark using THWaterMark() with yet another unsupported parameter: 0x4000.  This forces the watermark to stay put after any other resizing.  In this case we used a pale green background color, not an actual bitmap, as the second watermark.  A texture or watermark could have been used, but we wanted to demonstrate that this is the actual Help window now, not just a portion of it, even though the watermark’s hotspots still function.

Fine tuning

The final touch is making the window non-resizeable so the end user doesn't accidentally discover the tiling used in the watermark.  This is achieved by executing a dummy jump to the next topic and executing SetWindowLong() on entry to that topic prior to executing the second THMoveWindow() macro...and we need the second THMoveWindow() macro.  (Note that the SetWindowLong() macro sets up possible incompatibilities with Windows NT when applied to 32 bit helpfiles...a problem we’ll live with here for the sake of beauty.)

Why the second resize?  Because we lost all focus with the rest of  the client area, in particular the four text hotspots, when we made the client area the size of the pane.  We have to restore functionality to the hotspots by redrawing the window a second time, which we do again to the precise (or reasonably precise) dimensions of the original watermark...but this time we do it with hwndapp.  HwndApp when used with THMoveWindow() (or just MoveWindow()) will resize the window borders and redraw the menus and button bars in the new window size, but it won’t drag the actual text contents -- the client region -- with it.

The hotspots work because ThinHelp permits watermarks to have hotspots, and the pane stays put when you select these hotspots because the client area gets moved with the window, but not resized in proportion to it.

Added functionality

Of course all this is of limited value if there’s lost functionality to WinHelp.  Click the Help button to test a secondary window jump.

Cautions

You’ll also have to keep an eye on your palettes.  We ran into palette conflicts when developing this demo and had to insert transparent, 1x1-pixel palette-forcing bitmaps everywhere we used client-region bitmaps to insure that the pane frame’s colors were not distorted.

You may want to execute a new instance of the helpfile when entering “pane mode” to avoid conflicts with other window styles.

Suggestions

This particular application, if you decide to use it, may be more suited to displaying bitmaps than text, provided all bitmaps to be displayed in the pane are of the same size.

This type of effect can also be used to display small areas of large bitmaps, such as maps, allowing the scroll bars to be used as directional arrows.  This may not be the most comfortable method of navigation for the end user though, so be sure to get the opinions of a few beta-testers before distributing any Help apps set up this way.


We don’t know...can you?

Remember...thisis a completely unsupported feature of ThinHelp in this version.  We have no idea how reliable it will be or what it might do in certain situations.  If you wish to use it, you do so completely at your own risk, and if you want support with some of the intricacies of this technique, you will have to seek out peer support from other ThinHelp users.

This technique is time-consuming, requires graphical skills and some elementary understanding of window styling and sizing.  It should not be attempted without the appropriate skills except as a learning exercise.


This pane demo shows off a feature of ThinHelp which is not supported by the publisher, but we felt it was too much fun to leave out.  Click on any of the three hotspots in the “frame” at left.


Secondary window jumps from panes?

Sure...why not?  They work.

Secondary-window paning?

We couldn’t figure it out... maybe you can.


About to launch Help to RTF...

All files in ThinHelp’s help system include complete, uncrippled functionality with our Help to RTF conversion software for allowing you to create Word-compatible documentation from helpfiles including all bitmaps and embedded window objects.  This feature is reserved exclusively for helpfiles included with Herd Software Development products.  For complete functionality with all helpfiles you will need to own a license to Help to RTF Standard or Help to RTF Pro.

You can use the evaluation version of Help to RTF included in this package to create printable documentation from any of the included helpfiles and optionally load the appropriate helpfile directly into Help to RTF by selecting the Print Some or All Topics... item from each helpfile’s File menu.

Select one of the following:

Launch Help to RTF

Learn more about Help to RTF