[VB6/VBA] The CommonDialog control

Last update on August 1, 2009 12:36 PM by jak58
Published by netty5

[VB6/VBA] The CommonDialog control






The various functions of control CommonDialog

Here is a list of all the available constants,although they are not used in all functions, they will enable further researches.

The available functions with CommonDialog

  • The dialog box> Open File
  • The dialog box> Save as
  • The dialog box> Print
  • The dialog box> Selecting a policy

Getting started


A form> Name=Dialog
CommonDialog control> Name=CMDialog1

Button1>Caption =Open File
Code in CommandX_Click()>Ret =cmd_Open

Button2>Caption=Save as
Code in Clic Ret = cmd_Open()

Button3> Caption =Print
Code in CommandX_Click()>Ret = cmd_Print()

Button4> Caption = Policy
Code in CommandX_Click()> Ret = cmd_Policy()

An example of a standard module


Option Explicit

Public Filter1 As String
Public Filter2 As String
Public Filter 3 As String
Public Filter 4 As String
Public Filter 5 As String
Public Filter As String
Public Filter 7 As String

Public Const DLG_FILE_OPEN = 1
Public Const DLG_FILE_SAVE = 2
Public Const DLG_COLOR = 3
Public Const DLG_FONT = 4
Public Const DLG_Print = 5
Public Const DLG_HELP = 6

'File Open/Save Dialog Flags
Public Const OFN_READONLY = &H1&
Public Const OFN_OVERWRITEPROMPT = &H2&
Public Const OFN_HIDEREADONLY = &H4&
Public Const OFN_NOCHANGEDIR = &H8&
Public Const OFN_SHOWHELP = &H10&
Public Const OFN_NOVALIDATE = &H100&
Public Const OFN_ALLOWMULTISELECT = &H200&
Public Const OFN_EXTENSIONDIFFERENT = &H400&
Public Const OFN_PATHMUSTEXIST = &H800&
Public Const OFN_FILEMUSTEXIST = &H1000&
Public Const OFN_CREATEPROMPT = &H2000&
Public Const OFN_SHAREAWARE = &H4000&
Public Const OFN_NOREADONLYRETURN = &H8000&

'Color Dialog Flags
Public Const CC_RGBINIT = &H1&
Public Const CC_FULLOPEN = &H2&
Public Const CC_PREVENTFULLOPEN = &H4&
Public Const CC_SHOWHELP = &H8&

'Fonts Dialog Flags
Public Const CF_SCREENFONTS = &H1&
Public Const CF_PRINTERFONTS = &H2&
Public Const CF_BOTH = &H3&
Public Const CF_SHOWHELP = &H4&
Public Const CF_INITTOLOGFONTSTRUCT = &H40&
Public Const CF_USESTYLE = &H80&
Public Const CF_EFFECTS = &H100&
Public Const CF_APPLY = &H200&
Public Const CF_ANSIONLY = &H400&
Public Const CF_NOVECTORFONTS = &H800&
Public Const CF_NOSIMULATIONS = &H1000&
Public Const CF_LIMITSIZE = &H2000&
Public Const CF_FIXEDPITCHONLY = &H4000&
Public Const CF_WYSIWYG = &H8000&         'must also have CF_SCREENFONTS & CF_PRINTERFONTS
Public Const CF_FORCEFONTEXIST = &H10000
Public Const CF_SCALABLEONLY = &H20000
Public Const CF_TTONLY = &H40000
Public Const CF_NOFACESEL = &H80000
Public Const CF_NOSTYLESEL = &H100000
Public Const CF_NOSIZESEL = &H200000

'Printer Dialog Flags
Public Const PD_ALLPAGES = &H0&
Public Const PD_SELECTION = &H1&
Public Const PD_PAGENUMS = &H2&
Public Const PD_NOSELECTION = &H4&
Public Const PD_NOPAGENUMS = &H8&
Public Const PD_COLLATE = &H10&
Public Const PD_PRINTTOFILE = &H20&
Public Const PD_PRINTSETUP = &H40&
Public Const PD_NOWARNING = &H80&
Public Const PD_RETURNDC = &H100&
Public Const PD_RETURNIC = &H200&
Public Const PD_RETURNDEFAULT = &H400&
Public Const PD_SHOWHELP = &H800&
Public Const PD_USEDEVMODECOPIES = &H40000
Public Const PD_DISABLEPRINTTOFILE = &H80000
Public Const PD_HIDEPRINTTOFILE = &H100000

'Help Constants
Public Const HELP_CONTEXT = &H1           'Display topic in ulTopic
Public Const HELP_QUIT = &H2              'Terminate help
Public Const HELP_INDEX = &H3             'Display index
Public Const HELP_CONTENTS = &H3
Public Const HELP_HELPONHELP = &H4        'Display help on using help
Public Const HELP_SETINDEX = &H5          'Set the current Index for multi index help
Public Const HELP_SETCONTENTS = &H5
Public Const HELP_CONTEXTPOPUP = &H8
Public Const HELP_FORCEFILE = &H9
Public Const HELP_KEY = &H101             'Display topic for keyword in offabData
Public Const HELP_COMMAND = &H102
Public Const HELP_PARTIALKEY = &H105      'call the search engine in winhelp

Function add(a$) As String
    If a$ <> "" Then a$ = a$ + "|"
    add = a$
End Function

'Command lines ...
'FileName = cmd_open()
'If 1 filter more >> FileName = cmd_open("txt") 
'If multiple filters, initialize filter1 to 4 
'routine adds all the filter
Function cmd_open(Optional Filt1 As String) As String
Dim CTRL$, a$, b$, F1$, F2$, F3$, F4$
CTRL$ = Chr$(13) + Chr$(10)
    If Filt1 <> "" Then
        a$ = " File (*." & Filt1 & ") | *." & Filt1
    End If
    If Filter1 <> "" Then
        a$ = add(a$)
        a$ = a$ + " File (*." & Filter1 & ") | *." & Filter1
        Filter1 = ""
    End If
    If Filter2 <> "" Then
        a$ = add(a$)
        a$ = a$ + " File (*." & Filter2 & ") | *." & Filter2
        Filter2 = ""
    End If
    If Filter3 <> "" Then
        a$ = add(a$)
        a$ = a$ + " File (*." & Filter3 & ") | *." & Filter3
        Filter 3 = ""
    End If
    If Filter4 <> "" Then
        a$ = add(a$)
        a$ = a$ + " File (*." & Filter4 & ") | *." & Filter4
        Filter4 = ""
    End If
        a$ = add(a$)
        a$ = a$ + " All (*.*) | *.*"
    Dialog.CMDialog1.Filter = a$
    Dialog.CMDialog1.FilterIndex = 1
    Dialog.CMDialog1.FLAGS = CF_EFFECTS Or OFN_HIDEREADONLY Or CF_ANSIONLY
    Dialog.CMDialog1.Action = DLG_FILE_OPEN
    cmd_open = Dialog.CMDialog1.FileName
    Unload Dialog
End Function

Function cmd_Policy()
    Dialog.CMDialog1.DialogTitle = "Select policy"
    Dialog.CMDialog1.FLAGS = CF_WYSIWYG + CF_BOTH + CF_SCALABLEONLY
    Dialog.CMDialog1.Action = DLG_FONT
    Filter1 = Dialog.CMDialog1.FontName
    Filter4 = Dialog.CMDialog1.FontSize
    Filter5 = Dialog.CMDialog1.FontBold
    Filter6 = Dialog.CMDialog1.FontItalic
    cmd_Policy = Dialog.CMDialog1.FontName
End Function

Function cmd_Print()
    Dialog.CMDialog1.FLAGS = PD_ALLPAGES
    Dialog.CMDialog1.Min = 1
    Dialog.CMDialog1.Max = 100
    Dialog.CMDialog1.FromPage = 1
    Dialog.CMDialog1.ToPage = 100
    Dialog.CMDialog1.Action = DLG_Print
    Unload Dialog
End Function

'Filt1 = file extension to be searched for
'eg: TXT ou EXE
'routine adds all the filter(*.*)
Function cmd_SaveAs(Filt1 As String) As String
    Filter1 = "File (*." & Filt1 & ") | *." & Filt1
    Filter2 = "All (*.*) | *.*"
    Dialog.CMDialog1.Filter = Filter1 + "|" + Filter2
    Dialog.CMDialog1.FilterIndex = 1
    Dialog.CMDialog1.FLAGS = OFN_HIDEREADONLY
    Dialog.CMDialog1.Action = DLG_FILE_SAVE
    cmd_SaveAs = Dialog.CMDialog1.FileName
    Unload Dialog

End Function
Best answers for « The CommonDialog control » in :
Control - control.exe Show control - control.exe control.exe (control stands for Control Panel) is a Windows NT/2000/XP generic process which corresponds to the control panel. The file that corresponds to this process is normally found in the directory...
Activate Volume Control in the taskbar Show Activate Volume Control in the taskbar It may happen that after some configurations on your computer system, the icon volume control on your task bar disappears. Below is an indication how to recover same. The first step is to go...
The Add/Remove Programs icon is missing in Control Panel Show The Add/Remove Programs icon is missing in Control Panel When trying to add a program on your computer system, you suddenly noticed that the specific icon is missing. This can be due to Appwiz.cpl missing or damaged. This applet is...
USB host controller ShowUSB host controller When connecting a USB 2.0 device, Windows displays the following message: Install a high speed USB host controller or This device will function at reduced speed if you do not have high-speed controller installed...
[Vista] Take control over a file whose access is denied Show[Vista] Take control over a file whose access is denied Most Vista users have encounter the following type of message: "Access denied" when trying to edit some files or folder. To solve this problem: Right click the folder...
Creating a shortcut to Control Panel option ShowCreating a shortcut to Control Panel option Below is a simple tips for creating a shortcut to Control Panel on your Desktop. Go to ‘Menu Start’ and select/open ‘Control Panel’. Then select the option you want to create...
Download Notebook Hardware Control ShowNotebook Hardware Control is acomponent control tool of your Notebook. - It controls your system power management. - It personalizes Notebook (open source). - It prolongs the life time of the battery. - It cools down the system by reducing the...
Download Easy Time Control Free ShowIf you possess a small firm and what you must manage several employees, particularly their arrival and exit times, use Easy Time Control Free. Easy Time Control Free is a tool allowing to manage the hour of entrance and exit hours of several...
Windows networking ShowNetworking in Windows 2000/XP To configure each computer, simply go to the control panel, then double-click "network connections" and right-click "local area connection", then choose properties! The local area connection window displays the...
Sound card ShowIntroduction to sound cards The sound card (also called an audio card) is the part of a computer which manages its audio input and ouput. It is usually a controller which can be inserted into an ISA slot (or PCI for more recent ones), but...