Virtual Developer Workshop: Containerized Development with Docker
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 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.
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.
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.
If you would like to be informed of updates to QHTM then send an email to firstname.lastname@example.org.
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.