 |
| How to print FoxPro form |
User rating: 10/10 (1 votes) | |
|
|
 |
 |
| Before you begin: |
 |
Call this code from a method or event of FoxPro form to print image of the form on your default printer.
The window handle of the form is obtained through GetFocus function. For that a form has to be active and own the keyboard focus. In VFP7 and later, use ThisForm.HWnd instead.
See also:

How to print a FoxPro form using Metafile API functions
GDI+: sending image of FoxPro form to printer
Storing screen shot of a form to a BMP file
Storing clipboard contents to a BMP file
Using the LoadImage() to display a BMP file on the main VFP window
How to print a BMP file
|
 |
 |
| |
| |
Members area. Log in to view this example. |
|
| |
|
|
|
|
|
 |
User rating: 10/10 (1 votes) | |
| 7225 bytes Created: 2001-09-19 12:00:00 Modified: 2011-03-28 09:43:35 Visits in 7 days: 151 |
|
 |
 |
| Listed functions: |
 |
|
 |
 |
| My comment: |
 |
At the beginning two device contexts are retrieved:
- source device context from an active form
- destination device context from a default printer -- PrintDlg is used
It is not possible to transfer bitmap data directly between these device contexts -- at least to my knowledge. That is why you need a mediator -- the compatible device context and the compatible bitmap selected into it.
The compatible means that these both have properties similar to their form counterparts.
Bitmap information (both headers and data) is copied from the form to the compatible bitmap via the BitBlt function. Then device-independent bitmap data is selected from this temporary bitmap via the GetDIBits, next to be sent to the printer device context using the StretchDIBits function.
The last transfer is wrapped into the StartDoc | StartPage ... EndPage | EndDoc calls.
To keep the code short several simplifications have been made: only one page is printed regardless of the size of the form; no control of the page orientation.
The PRINTDLG structure, one used to initialize the printer settings, is mostly populated with zeros. That means all default printing settings are applied: one copy, all pages, portrait etc. To switch, for example, to the album orientation, populate correspondent members of this structure. Check this example.
|
 |
 |
| Word Index links for this example: |
 |
|
|
 |
 |
| Translate this page: |
 |
|