QHTM – Quick, Light HTML Control

[What Does It Do?]
[HTML Support/Restrictions]
[Download It!]

What does it do?

QHTM is a control you can use to display HTML on a dialog or in your main window of
your applications. Adding it into your application is as simple as either using
CreateWindow or adding the control to your dialogs. You can give it plain HTML text by
simply using the SetWindowText(…) API, or, if you have more that just text you want to
use you can use the single API that will read from your resources. If that is not enough
it will also read files from a local drive.

QHTM started life as a
part of one of my own projects, it has since grown into a full control that anyone can
download and use.

QHTM is a DLL of about 200k, with no requirements for any other DLLs or support files.

QHTM is not a browser, it
will not directly display anything from the internet, nor will it directly load web pages
from a hard drive. It is primarily designed as a static control, a static control that can
display PNG files, multiple tables of data with all of the HTML formatting you would
expect.

You could use QHTM as an
enhanced static control, QHTM HTML input does not have to be a full HTML file, something
like “This is <b>bold</b>” is enough. I use QHTM to display data in
a better way than just blaming text onto a dialog. You can use QHTM to allow the user to
make selections by clicking on hyperlinks. You could use QHTM as a groovy version of
scrolling credits on your about box.

QHTM is useable from any
Win32 programming language that can call a ‘C’ callable function, can register a Windows
message and use CreateWindow. It does not use MFC but is quite happy being used from an
MFC or a Win32 API application.

[TOP]

HTML Support and Restrictions

Most of the restrictions are related to either speed or complexity. In most cases they
will not trouble you at all. If any of the restrictions or unsupported features bother you
then drop me a line and I am sure we can work something out.

Image support is currently
limited to PNG, I cannot do GIF due to the licencing issues with UNISYS. Transparent
images are not yet supported. PNG does not properly support animation so there is not yet
any animation. Both of these will be resolved in the near future.

QHTM displays tables, and
tables (or entire documents) within tables etc. It does not have column or row spanning.
It will treat the first row description as the description for the entire table. Table
borders are not yet supported.

Background bitmaps are not supported. I have no plans to support this.

QHTM has no forms support. There is no scripting or dynamic HTML.

For a full list of all the supprted tags see Tags.doc in the ZIP file below.

[TOP]

Copyright

QHTM is Copyright Russell Freeman 1999.

If you redistribute QHTM, you should
redistribute the whole library including documentation and copyright. In no event may any
part of the library be distributed without this copyright notice.
If you use of QHTM in your program, you must acknowledge this, preferably in the about box
and the documentation. This should take the form of “contains QHTM code. QHTM is
copyright (c) 1999 Russell Freeman.”. The documentation must also contain this
notice.

The QHTM code is supplied “AS
IS”. Russell Freeman and other authors disclaim all warranties, expressed or implied,
including, without limitation, the warranties of merchantability and of fitness for any
purpose. The authors assume no liability for direct, indirect, incidental, special,
exemplary, or consequential damages, which may result from the use of QHTM, even if
advised of the possibility of such damage.

QHTM contains paintlib code. paintlib is copyright (c) 1996-1998 Ulrich von Zadow.

[TOP]

Downloading

If you would like to be informed of updates to QHTM then send an email to russf@gipsysoft.com.

The ZIP file below includes an MFC example of how to use QHTML. The About box has HTML displayed on it and there is a demonstration of loading a HTML file on the View menu.

Click to download QHTML — 155KB

More by Author

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Must Read