Windows Developer Documentation

Common Dialog Box Library

The Common Dialog Box Library provides a set of standard dialog boxes that you can use to perform common operations in your Windows applications. These dialog boxes ensure a consistent user experience across different applications by adhering to established Windows UI paradigms.

Overview

These dialog boxes handle tasks such as:

By using the Common Dialog Box Library, developers can save time and effort by not having to implement these functionalities from scratch. They also contribute to improved usability and accessibility for end-users.

Key Dialog Boxes

File Open/Save Dialog Boxes

These dialog boxes allow users to select files to open or specify a location and filename to save to. They include features like directory navigation, file filtering, and read-only options.

Related Functions:

  • GetOpenFileName
  • GetSaveFileName

Color Dialog Box

Enables users to select a color from a palette or define custom colors. This is commonly used for setting foreground or background colors of elements.

Related Functions:

  • ChooseColor

Font Dialog Box

Allows users to choose a font, font style, and font size for text within an application. It typically displays available system fonts and their properties.

Related Functions:

  • ChooseFont

Print Dialog Boxes

Provides interfaces for users to select a printer, specify print settings (e.g., number of copies, page range), and configure print-related options.

Related Functions:

  • PrintDlg
  • PageSetupDlg

Using the Dialog Boxes

To use a common dialog box, you typically follow these steps:

  1. Define a structure that holds the initialization parameters and receives the results from the dialog box.
  2. Initialize the structure with default values or desired settings.
  3. Call the appropriate dialog box function (e.g., GetOpenFileName).
  4. Check the return value to determine if the user clicked "OK" or "Cancel".
  5. If the user clicked "OK", retrieve the results from the structure.

Example: Opening a File

Here's a conceptual example of how you might call the GetOpenFileName function (syntax may vary slightly based on language binding):


#include <windows.h>
#include <commdlg.h>

// ...

OPENFILENAME ofn;
char szFile[MAX_PATH] = {0};

ZeroMemory(&ofn, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.lpstrFilter = "Text Files (*.txt)\0*.txt\0All Files (*.*)\0*.*\0";
ofn.lpstrFile = szFile;
ofn.nMaxFile = sizeof(szFile);
ofn.Flags = OFN_EXPLORING | OFN_FILEMUSTEXIST;

if (GetOpenFileName(&ofn)) {
    // User clicked OK, szFile now contains the selected file path
    MessageBox(NULL, ofn.lpstrFile, "Selected File", MB_OK);
} else {
    // User clicked Cancel or an error occurred
    DWORD dwError = CommDlgExtendedError();
    if (dwError != 0) {
        // Handle error
    }
}
            

API Reference

For detailed information on each function and structure, please refer to the specific API documentation: