Microsoft KB Archive/137035

From BetaArchive Wiki

Article ID: 137035

Article Last Modified on 1/8/2003



APPLIES TO

  • Microsoft Visual Basic 4.0 Standard Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 16-bit Enterprise Edition
  • Microsoft Visual Basic 4.0 32-Bit Enterprise Edition
  • Microsoft Visual Basic 3.0 Professional Edition
  • Microsoft Visual Basic 3.0 Professional Edition



This article was previously published under Q137035

SYMPTOMS

The Font dialog box shows fonts with certain styles not supported by the current printer, even after setting the Flags property in the Common Dialog control to the PrinterFonts constant.

CAUSE

If the Flags property is set to PrinterFonts only, the Font dialog box may still allow graphic device interface (GDI) simulation.

RESOLUTION

This can be resolved by setting the Flags property to two constants merged together using the Or operator. These constants are PrinterFonts and NoSimulations.

STATUS

This behavior is by design.

MORE INFORMATION

Step-By-Step Example

  1. Start a new project in Visual Basic. Form1 is created by default.
  2. Add a Common Dialog control to Form1, and set its Name property to CMDialog.
  3. Add the following to the general declarations section of Form1:

       ' In Visual Basic 4.0 the constants would be:
       Const vbCFNoSimulations = &H1000&
       Const vbCFPrinterFonts = &H2&
    
       ' In Visual Basic 3.0 the name of the constants would be:
       Const CF_NoSimulations = &H1000&
       Const CF_PrinterFonts = &H2&
    
       Either set of constant names would work as long as you are consistent in
       your usage. The rest of this article uses the version 4.0 constants.
                            
  4. Add the following to the Form_Load event procedure:

       Private Sub Form_Load()
          ' The following line can be written either like this:
          CMDialog.Flags = vbCFNoSimulations Or vbCFPrinterFonts
    
          ' or like this:
          ' CMDialog.Flags = vbCFNoSimulations + vbCFPrinterFonts
    
          CMDialog.Action = 4
       End Sub
                            
  5. Start the program by pressing the F5 key or by clicking Start on the Run menu.


REFERENCES

For a more complete description of the Flag property constants, please see the Language Reference, the Constant.txt file in Visual Basic 3.0, and the Object Browser in Visual Basic 4.0.


Additional query words: 4.00 3.00 vb4win vb4all

Keywords: kbprb KB137035